说我有一份清单
[[1, 2, 3], [4, 5, 6]]
我希望对此进行转换,以便将各个指数相加并得到:
[5, 7, 9]
列表推导,zip(),sum()等是否有一个简单的组合可以让我得到这个结果,而不会写出for循环和累加器的混乱?
答案 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()