8

我有列表列表,我需要对内部列表求和,例如,

a = [[1,2,3], [2,1,4], [4,3,6]]

就我而言, a[i] 的 len 是相同的,即所有内部列表都具有相同的维度。

我需要输出为

result = [6,7,13]

我所做的是:

result = [sum(a[i]) for i in range(len(a))]

由于我的 len(a) 非常高,我希望有另一种方法可以在不使用 for 循环的情况下获得结果。

4

3 回答 3

23
result = map(sum, a)

是我会这样做的方式。或者:

result = [sum(b) for b in a]

第二个变体与您的变体相同,只是它避免了不必要的范围声明。在 Python 中,您可以直接迭代列表,而不必保留单独的变量作为索引。

于 2012-11-08T06:31:05.297 回答
3

我知道没有人喜欢它,只是提供一个选择:

result = [reduce(lambda x, y: x+y, l) for l in a]
于 2012-11-08T07:02:55.847 回答
1

一个简单的答案。

a = [[1,2,3], [2,1,4], [4,3,6]]
result = [sum(l) for l in a]

result
[6, 7, 13]
于 2012-11-08T06:33:51.933 回答