Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x 求总和,使用for循环在两个字典上迭代,乘以键值_Python 3.x - Fatal编程技术网

Python 3.x 求总和,使用for循环在两个字典上迭代,乘以键值

Python 3.x 求总和,使用for循环在两个字典上迭代,乘以键值,python-3.x,Python 3.x,刚开始学习python3,就遇到了字典。教程中的问题有以下问题: 创建名为weight的字典,并使用以下值初始化: “铅笔”:10 “笔”:20 “文件”:4 “橡皮擦”:80 创建另一个名为available的字典,并用以下值初始化: “笔”:3 “铅笔”:5 “橡皮擦”:2 “文件”:10 但我遇到了一些困难: 编写确定所有可用物品总重量的代码(即,所有笔、铅笔、纸和橡皮擦的总重量是多少?) 我需要使用for循环来循环键来完成此操作 为了练习求和,我先从每本字典求和开始: `weig

刚开始学习python3,就遇到了字典。教程中的问题有以下问题:

创建名为weight的字典,并使用以下值初始化: “铅笔”:10 “笔”:20 “文件”:4 “橡皮擦”:80

创建另一个名为available的字典,并用以下值初始化: “笔”:3 “铅笔”:5 “橡皮擦”:2 “文件”:10

但我遇到了一些困难: 编写确定所有可用物品总重量的代码(即,所有笔、铅笔、纸和橡皮擦的总重量是多少?)

我需要使用for循环来循环键来完成此操作

为了练习求和,我先从每本字典求和开始:

    `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循环,并使用+=.分配值。很高兴提供帮助。我在我的答案中添加了更多的信息,以及一些我建议阅读字典的链接。