python - 多个列表列表索引的总和

标签 python list

假设我有一个列表列表:

[[5, 10, 30, 24, 100], [1, 9, 25, 49, 81]]
[[15, 10, 10, 16, 70], [10, 1, 25, 11, 19]]
[[34, 20, 10, 10, 30], [9, 20, 25, 30, 80]]

现在我想要第一个列表的所有索引的总和,然后是第二个列表 5+15+34=54 10+10+20=40 等等:

[54,40,50, 50,200], [20,30,75,90,180]

我试过:

for res in results:     
    print [sum(j) for j in zip(*res)] 

这里的 results 是列表的列表。 但它给出了每个列表项的总和:

[6,19,55,73,181]
[25,11,35,27,89]
[43,40,35,40,110]

最佳答案

你几乎是正确的,你需要解压 results 并压缩它。

>>> data = [[[5, 10, 30, 24, 100], [1, 9, 25, 49, 81]],
...         [[15, 10, 10, 16, 70], [10, 1, 25, 11, 19]],
...         [[34, 20, 10, 10, 30], [9, 20, 25, 30, 80]]]
>>> for res in zip(*data):
...     print [sum(j) for j in zip(*res)] 
... 
[54, 40, 50, 50, 200]
[20, 30, 75, 90, 180]

你可以简单地用列表理解来写这个

>>> [[sum(item) for item in zip(*items)] for items in zip(*data)]
[[54, 40, 50, 50, 200], [20, 30, 75, 90, 180]]

关于python - 多个列表列表索引的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36003967/

相关文章:

python - 什么时候删除 Tomcat 8/temp 目录是安全的?

python - 如何使用 f.readline() 返回 python 2.7 中的特定行

python - 用一行在python中获取数组元素

java - 如何在 LinkedList 节点中保留两条信息?

python - Numpy 运行时警告 : divide by zero encountered in log10

python - 如何将原始二进制解码为十六进制

javascript - Django - 限制用户访问相同的值

list - Scala 根据条件在 2 个列表之间合并

python - 检查txt文件中是否有新字符串

java - 链表 : infinite loop