我有列表列表,我需要对内部列表求和,例如,
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循环的情况下获得结果。
答案 0 :(得分:19)
result = map(sum, a)
我是这样做的。可替换地:
result = [sum(b) for b in a]
第二个变体与您的相同,只是它避免了不必要的范围声明。在Python中,您可以直接迭代列表,而无需将单独的变量保留为索引。
答案 1 :(得分:3)
我知道没有人喜欢它,只是给出一个选择:
result = [reduce(lambda x, y: x+y, l) for l in a]
答案 2 :(得分:0)
一个简单的答案。
a = [[1,2,3], [2,1,4], [4,3,6]]
result = [sum(l) for l in a]
result
[6, 7, 13]