嗨,我有一个数组,我想垂直求和。只是想知道是否有任何功能可以轻松做到这一点?
a = [[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
我想打印1+6+11+16+21 , 2+7+12+17, 3+8+13, 4+9, 5
的答案
如您所见,在每次迭代中,元素减少了一个。
答案 0 :(得分:4)
这是使用zip
和简单迭代的一种方法。
例如:
a = [[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
print([sum(v[:-i]) if i else sum(v) for i, v in enumerate(zip(*a))])
输出:
[55, 38, 24, 13, 5]
答案 1 :(得分:0)
转换为numpy数组,然后使用以下列表理解
bash
产生以下结果:
a = np.array(a)
[a[:5-i,i].sum() for i in range(5)]