【问题标题】:How to loop through lists and dictionaries如何遍历列表和字典
【发布时间】:2020-05-16 22:47:43
【问题描述】:

我有一个任务,我必须遍历一个列表,然后是字典,以显示一家咖啡馆的总股票价值。我创建了一些经过审查但被​​告知这些 cmets 的代码:

尝试遍历菜单列表。

每个项目都可以用作字典中的键,以检索匹配的股票和价格值。

库存价值是每个库存项目乘以其价格的总和。

我只是在如何将列表项转换为键然后将它们添加到字典中遇到了一些麻烦。

我原来的代码如下:

menu = ['cheeseburger', 'chicken nuggets', 'fish', 'chips']
total = 0
stock = {1: 25,
         2: 20,
         3: 18,
         4: 10
         }

price = {1: 40,
         2: 35,
         3: 28,
         4: 18
         }

for stock in price:
    total = total + price[stock]
total = float(total)
print("The total stock worth is R" + (str(total)))

感谢您的帮助和建议!

【问题讨论】:

  • cmets 告诉你,不要使用1-4 作为字典的键,而是使用cheeseburger-chips
  • 感谢您的建议!那我为什么要遍历菜单呢?
  • 因为这样您就可以通过stock[food] 直接从字典中获取值,而不必使用一个字典键作为另一个字典的访问器

标签: python list loops dictionary


【解决方案1】:

你被要求做的是这个

menu = ['cheeseburger', 'chicken nuggets', 'fish', 'chips']
stock = {'cheeseburger' : 25, 'chicken nuggets' : 20, 'fish' : 18, 'chips' : 10}
price = {'cheeseburger' : 40, 'chicken nuggets' : 35, 'fish' : 28, 'chips' : 18}
total = 0
for i in menu:
    total += stock[i] * price[i]

total的值,for循环后是2384,就是必答题

【讨论】:

    【解决方案2】:

    让我们逐点进行 -

    1. 尝试循环浏览菜单列表。

    ---> 会这样做。你会明白为什么需要这样做。

    2.每个项目都可以用作字典中的键,以检索匹配的股票和价格值。

    ---> 您应该使用菜单列表中的项目作为您为stockprice 创建的字典中的键,而不是使用数字作为键。

    这有助于更清晰地可视化和理解代码和变量结构。

    所以你应该把它改成:-

    stock = {'cheeseburger': 25, 'chicken nuggets': 20, 'fish': 18, 'chips': 10}
    
    price = {'cheeseburger': 40, 'chicken nuggets': 35, 'fish': 28, 'chips': 18}
    

    3.股票价值是每个股票项目乘以其价格的总和。

    ---> 现在您只需将所有股票的价格相加即可计算股票的总价格。评论指出,计算总股票价格的逻辑应该是菜单中每个项目的stock_units*price_of_one_stock的总和。

    为此,您需要遍历菜单的所有项目。计算菜单中每个项目的总股票价格并将其添加到最终总价值中。

    类似这样的:

    total = 0
    for item in menu:
        total = total + stock[item]*price[item]
    print(total)
    

    【讨论】:

    • 感谢大家的帮助和理解!
    【解决方案3】:

    试试这个:

    menu = ['cheeseburger', 'chicken nuggets', 'fish', 'chips']
    stock = {'cheeseburger': 25,
             'chicken nuggets': 20,
             'fish': 18,
             'chips': 10
             }
    
    price = {'cheeseburger': 40,
             'chicken nuggets': 35,
             'fish': 28,
             'chips': 18
             }
    
    
    total = 0
    for food in menu:
        total += stock[food] * price[food]
    
    print(total)
    

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 2012-11-23
      • 1970-01-01
      • 2019-11-29
      相关资源
      最近更新 更多