Python 一个字典中多个列表的总和
对python非常陌生,希望能在这里得到一些帮助。我正试图从字典里的不同列表中总结总数Python 一个字典中多个列表的总和,python,python-3.x,list,Python,Python 3.x,List,对python非常陌生,希望能在这里得到一些帮助。我正试图从字典里的不同列表中总结总数 {'1': [0, 2, 2, 0, 0], '2': [0, 1, 1, 0, 0], '3': [2, 4, 2, 0, 2]} 我一直试图找到一种方法,将总数总结如下,并添加到一个新列表中: '1': [0, 2, 2, 0, 0] '2': [0, 1, 1, 0, 0] '3': [2, 4, 2, 0, 2] 0+0+2 = 2 2+1+4 = 7 2+1+2 = 5 [2, 7, 5, 0
{'1': [0, 2, 2, 0, 0], '2': [0, 1, 1, 0, 0], '3': [2, 4, 2, 0, 2]}
我一直试图找到一种方法,将总数总结如下,并添加到一个新列表中:
'1': [0, 2, 2, 0, 0]
'2': [0, 1, 1, 0, 0]
'3': [2, 4, 2, 0, 2]
0+0+2 = 2
2+1+4 = 7
2+1+2 = 5
[2, 7, 5, 0, 2]
如果我这样做的话,我能够得到一行的部分结果,但是我无法找到一种方法来获得我想要的输出
total_all = list()
for x, result_total in result_all.items():
new_total = (result_total[1])
total_all.append((new_total))
print(sum(total_all))
output 7
使用zip()
()函数转换字典值和sum()
在列表理解中对它们进行汇总,我们将非常感谢您的任何建议和帮助
d = {'1': [0, 2, 2, 0, 0], '2': [0, 1, 1, 0, 0], '3': [2, 4, 2, 0, 2]}
out = [sum(i) for i in zip(*d.values())]
print(out)
印刷品:
[2, 7, 5, 0, 2]
编辑(很少解释):
zip()内部的星形表达式*
有效地将dict值解压为:
out = [sum(i) for i in zip([0, 2, 2, 0, 0], [0, 1, 1, 0, 0], [2, 4, 2, 0, 2])]
zip()
迭代每个参数:
1. iteration -> (0, 0, 2)
2. iteration -> (2, 1, 4)
...
sum()
1. iteration -> sum( (0, 0, 2) ) -> 2
2. iteration -> sum( (2, 1, 4) ) -> 7
...
使用zip()
()函数转换字典值,并在列表中使用sum()
对它们求和:
d = {'1': [0, 2, 2, 0, 0], '2': [0, 1, 1, 0, 0], '3': [2, 4, 2, 0, 2]}
out = [sum(i) for i in zip(*d.values())]
print(out)
印刷品:
[2, 7, 5, 0, 2]
编辑(很少解释):
zip()内部的星形表达式*
有效地将dict值解压为:
out = [sum(i) for i in zip([0, 2, 2, 0, 0], [0, 1, 1, 0, 0], [2, 4, 2, 0, 2])]
zip()
迭代每个参数:
1. iteration -> (0, 0, 2)
2. iteration -> (2, 1, 4)
...
sum()
1. iteration -> sum( (0, 0, 2) ) -> 2
2. iteration -> sum( (2, 1, 4) ) -> 7
...
你可以这样做
In [6]: list(map(sum,zip(*d.values())))
Out[6]: [2, 7, 5, 0, 2]
你可以这样做
In [6]: list(map(sum,zip(*d.values())))
Out[6]: [2, 7, 5, 0, 2]
谢谢这里的帮助和详细的解释谢谢这里的帮助和详细的解释