是否有一种方法在Python中,我可以取一个列表,并从字典中打印出相应的值?



根据用户输入,我可以制作一个列表。目的是将此列表与字典进行交叉检查,并将相应的值打印到另一个列表中。

输入"food"两次出现不可哈希类型的类型错误:"list">

我能做什么来解决这个问题?是通过改变顺序还是使用新的功能?这是我的代码:

grocery_market = {"food": 2}
shopping_list = []
max_shop_list = 2
while len(shopping_list) < max_shop_list:

item = input("Add an item: ")
shopping_list.append(item)
print(shopping_list)
print(grocery_market[shopping_list])

我不知道在另一个列表中打印的是什么意思。

但是你可以使用if语句:

print([item for item in shopping_list if item in grocery_market])

或字典理解:

print({item: value for item, value in grocery_market.items() if item in shopping_list}) 

我想这就是你要找的:

grocery_market = {"food": 2}
shopping_list = []
max_shop_list = 2
while len(shopping_list) < max_shop_list:

item = input("Add an item: ")
shopping_list.append(item)
print(shopping_list)
both = [] # Create a dictionary to put our results in
for item in shopping_list:
if item in list(grocery_market.keys()): # Check if the item exists in the grocery market
both.append(grocery_market[item]) # Add the item to the dictionary if found in both
print(both) # Print out the results

如果你想要一本字典,做

both = {}
for item in shopping_list:
if item in list(grocery_market.keys()): # Check if the item exists in the grocery market
both[item] = grocery_market[item] # Add the item to the dictionary if found in both
print(both)

(这是最初的答案)

似乎您想要查找列表中每个项目的值。使用shopping_list_values = [grocery_market[item] for item in shopping_list]可以得到这个

grocery_market = {"food": 2}
shopping_list = []
max_shop_list = 2
while len(shopping_list) < max_shop_list:

item = input("Add an item: ")
shopping_list.append(item)
print(shopping_list)
print([grocery_market[itm] for itm in shopping_list])

这个打印

Add an item: 
food
['food']
Add an item: 
food
['food', 'food']
[2, 2]

最新更新