有没有办法将2D列表的相同索引简单地加到一维列表中?

时间:2017-04-03 01:23:13

标签: python

说我有一份清单

[[1, 2, 3], [4, 5, 6]]

我希望对此进行转换,以便将各个指数相加并得到:

[5, 7, 9]

列表推导,zip(),sum()等是否有一个简单的组合可以让我得到这个结果,而不会写出for循环和累加器的混乱?

2 个答案:

答案 0 :(得分:1)

zip将采用splatted list / tuple,因此您可以使用理解来获得任意大小的总和:

lol = [ [1,2,3],
        [4,5,6],
        [7,8,9],
        ]

s = [sum(a) for a in zip(*lol)]
print(s)

打印:

[12, 15, 18]

答案 1 :(得分:-1)

您可以使用numpy,将列表转换为数组,并按如下方式在0轴上求和:

import numpy as np
list_of_lists = [[1, 2, 3], [4, 5, 6]]
arr = np.array(list_of_lists)
result = np.sum(arr, axis=0)
print(result)

虽然只有当列表中的所有列表都具有相同的长度时才会有效。

您可以稍后使用以下内容将结果转换为列表(如果需要)

result.tolist()