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