0
這個工程:循環元組列表 - 類型錯誤:unhashable類型:「名單」
shopping_list = ["banana", "orange", "apple"]
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
def compute_bill(food):
total = 0
# food = tuple(food)
for food in food:
total += prices[food]
return total
print compute_bill(shopping_list)
但是,如果我改變食物在環路別的,例如X - 食品中X - 然後蟒蛇給我下面的錯誤(只用適用於食品中的食品。)
Traceback (most recent call last):
File "compute-shopping.py", line 25, in <module>
print compute_bill(shopping_list)
File "compute-shopping.py", line 21, in compute_bill
total += prices[food]
TypeError: unhashable type: 'list'
這是不相關的使用元組或列表的密鑰字典...或者是什麼呢?!
請循環變量更改爲'food'其他的東西,你要覆蓋較早的值'food' –
「用於食物的食物」你有沒有考慮用不同的名字來提及它的內容? – TigerhawkT3
「食物」是一個列表還是一個字符串? Python似乎認爲它是一個列表,並且您正在使用它來索引一本字典,這是一個禁忌。字典鍵必須是不可變的。 –