Python 3.x 求总和,使用for循环在两个字典上迭代,乘以键值
刚开始学习python3,就遇到了字典。教程中的问题有以下问题: 创建名为weight的字典,并使用以下值初始化: “铅笔”:10 “笔”:20 “文件”:4 “橡皮擦”:80 创建另一个名为available的字典,并用以下值初始化: “笔”:3 “铅笔”:5 “橡皮擦”:2 “文件”:10 但我遇到了一些困难: 编写确定所有可用物品总重量的代码(即,所有笔、铅笔、纸和橡皮擦的总重量是多少?) 我需要使用for循环来循环键来完成此操作 为了练习求和,我先从每本字典求和开始:Python 3.x 求总和,使用for循环在两个字典上迭代,乘以键值,python-3.x,Python 3.x,刚开始学习python3,就遇到了字典。教程中的问题有以下问题: 创建名为weight的字典,并使用以下值初始化: “铅笔”:10 “笔”:20 “文件”:4 “橡皮擦”:80 创建另一个名为available的字典,并用以下值初始化: “笔”:3 “铅笔”:5 “橡皮擦”:2 “文件”:10 但我遇到了一些困难: 编写确定所有可用物品总重量的代码(即,所有笔、铅笔、纸和橡皮擦的总重量是多少?) 我需要使用for循环来循环键来完成此操作 为了练习求和,我先从每本字典求和开始: `weig
`weight = {"pencil": 10, "pen": 20, "paper": 4, "eraser": 80}
print("Overall weight: ", (sum(weight.values())))
available = {"pen": 3, "pencil": 5, "eraser": 2, "paper": 10}
print("Available items: ", (sum(available.values())))`
这给了我每种方法的输出:
总重量:114#每件物品的总重量
可用项目:20#项目总数
这并不能真正帮助我回答这个问题,尽管乘以这些值会得到错误的答案
到目前为止,我已经知道了这一点,但我真的不知道如何使用for循环,因此不断出现错误:
`weight = {"pencil": 10, "pen": 20, "paper": 4, "eraser": 80}
available = {"pencil": 5,"pen": 3, "paper": 10, "eraser": 2}
overall_weight = 0
# missing for loop here
print("Overall weight: ", overall_weight)`
是这样的吗?
手动操作,我可以看到总重量应该是310。
(5*10)+(3*20)+(10*4)+(2*80)=310
我知道答案可能很简单,但我实在想不起来。如果您有任何建议,我们将不胜感激。这就是您所要做的一切
total = 0
for key, value in weight.items():
total += value * available[key]
print(total) # 310
此代码要求两个字典中都存在键。如果您试图访问一个不存在的密钥,将抛出一个密钥错误。因此,您可以在“可用”中访问密钥之前检查密钥是否存在
total = 0
for key, value in weight.items():
if key in available:
total += value * available[key]
您可以使用.keys()
或.items()
在字典中循环时获取所需内容
dict_keys(['pencil', 'pen', 'paper', 'eraser'])
.keys()
将返回字典中的一个iterable键
dict_keys(['pencil', 'pen', 'paper', 'eraser'])
.items()
将返回字典中每个项目的键和值。这是很有用的,这样我们就不必在循环该项时再次访问该项的字典
用于k,v的重量。项目()
印刷品(k,v)
这将打印:
pencil 10
pen 20
paper 4
eraser 80
我强烈建议大家阅读字典。它们是强大的数据结构
传奇!我知道我错过了一些简单的东西,谢谢布兰登!将玩for循环,并使用+=.分配值。很高兴提供帮助。我在我的答案中添加了更多的信息,以及一些我建议阅读字典的链接。