例如,我正在开发一个程序来获取商店中订购的商品总数。我为可用项目创建了一个名为menu的字典,但是如果订单列表中订购的项目不在我的词典“菜单”的键名范围之内,则应将该项目替换为Coke。

我的意图是将项目转换为它们的价格,这是字典中的相应值,然后进行必要的总计。

但是似乎像在示例中一样,爆米花并没有让步。请帮助。

a = ["Pizza", "Cheeseburger", "Water", "Popcorn"]
menu = {"Nachos":6,"Pizza":6,"Cheeseburger":10,"Water":4,"Coke":5}
for i in a:
   if not i in menu:
      i = "Coke"
print(a)

最佳答案

i变量仅表示可迭代对象中的当前项,要替换数组中的值,可以使用其索引,enumerate给出元组(index, element)

order = ["Pizza", "Cheeseburger", "Water", "Popcorn"]
menu = {"Nachos": 6, "Pizza": 6, "Cheeseburger": 10, "Water": 4, "Coke": 5}
for idx, item in enumerate(order):
    if item not in menu:
        order[idx] = "Coke"
print(order) # ['Pizza', 'Cheeseburger', 'Water', 'Coke']


但是您将在接下来寻找价格,您可以在同一张照片中完成

total = 0
for item in order:
    total += menu.get(item, menu["Coke"]) # if item not present, get price of Coke
print(total)

10-07 15:37