在python中按位置列出内部列表

时间:2017-11-16 01:33:34

标签: python list loops

我有一个看起来像这样的列表,我想总结每个位置的值,以便生成一个只有三个值的列表

print x
[[0, 0, -1], [0, 0, -1], [0, 0, 0], [1, 0, 0], [0, 0, 1]]

例如,x[0][1]应与x[1][1]x[2][1]x[3][1]x[4][1]中的值相加。同样,x[0][2]应与x[1][2]x[2][2]等相加。

输出应该如下所示

print output
[1, 0, -1]

3 个答案:

答案 0 :(得分:3)

使用numpy:

np.sum(x, axis=0) 

使用原生列表:

[sum(y) for y in zip(*x)]

答案 1 :(得分:3)

我会使用Julien's答案,因为它更具可读性,但为了给您提供替代方案,您可以使用mapzip函数。

list(map(sum, zip(*x)))

答案 2 :(得分:0)

只需组合for循环:

outlist=[]
for i in range(len(L[0])):
    sum = 0
    for subL in L:
        sum += subL[i]
    outlist.append(sum)

print(outlist)

输出:

[1, 0, -1]