Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何循环浏览列表和字典_Python_List_Loops_Dictionary - Fatal编程技术网

Python 如何循环浏览列表和字典

Python 如何循环浏览列表和字典,python,list,loops,dictionary,Python,List,Loops,Dictionary,我有一个任务,我必须循环浏览一个列表,然后是字典,以显示一家咖啡馆的总股票价值。我创建了一些经过审查的代码,但被告知以下评论: 尝试循环浏览菜单列表 每个项目都可以用作字典中的键,以检索匹配的股票和价格值 股票价值是每个股票项目的总和乘以其价格 我只是在如何将列表项转换为键,然后将它们添加到字典中遇到了一些麻烦 我的原始代码如下: menu = ['cheeseburger', 'chicken nuggets', 'fish', 'chips'] total = 0 stock = {1: 2

我有一个任务,我必须循环浏览一个列表,然后是字典,以显示一家咖啡馆的总股票价值。我创建了一些经过审查的代码,但被告知以下评论:

尝试循环浏览菜单列表

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

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

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

我的原始代码如下:

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)))
谢谢你的帮助和建议

试试这个:

menu=[‘芝士汉堡’、‘鸡块’、‘鱼’、‘薯条’]
股票={'cheeseburger':25,
“鸡块”:20块,
"鱼":18,,
“筹码”:10
}
价格={'cheeseburger':40,
“鸡块”:35,
"鱼":28,,
‘筹码’:18
}
总数=0
菜单上的食物:
总数+=库存[食品]*价格[食品]
打印(总计)

让我们一点一点地走-

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

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

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

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

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

因此,您应该将其更改为:-

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

price = {'cheeseburger': 40, 'chicken nuggets': 35, 'fish': 28, 'chips': 18}
3.股票价值是每个股票项目的总和乘以其价格

--->现在,只需将所有股票的价格相加,即可计算出股票的总价格。评论指出,对于菜单中的每个项目,计算股票总价格的逻辑应该是
stock\u units*price\u of_one\u stock

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

大概是这样的:

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

你被要求做的就是这样

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]

for循环后的total值为2384,这是必需的答案

注释告诉您,与其使用
1-4
作为字典的键,不如使用
奶酪汉堡芯片
谢谢您的建议!那为什么我需要循环浏览菜单呢?因为这样你就可以通过
库存[食物]
直接从字典中获取值,而不必使用一个字典键作为另一个的访问器谢谢大家的帮助和理解!