2017-07-18 72 views
0

我有以下代码:总和多维数组由元素位置

y = [sum(x) for x in ([0, 1, 2], [10, 11, 12], [20, 21, 22])] 

print(y) 

的输出是:[3,33,63]

我所后通过位置在每个列表中总结,所以我想要的输出是:

[30, 33, 36] 

0 + 10 + 20 = 30 
1 + 11 + 21 = 33 
2 + 12 + 22 = 36 

我在做什么错?

回答

2

zip名单第一:

y = [sum(x) for x in zip([0, 1, 2], [10, 11, 12], [20, 21, 22])] 

print(y) 
# [30, 33, 36] 
-1

如果你想单资金通过指数你可以写,让你一个方法:

def sum_by_index(array_2D,idx): 
    s = 0 
    for row in array_2D: 
     s += row[idx] 
    return s 

如果你想一下子大家的款项可以同时进行但同时进行:

def sums_by_index(array_2D): 
    s = array_2D[0] 
    for row in array_2D[1:]: 
     for i,entry in enumerate(row): 
      s[i] += entry 
    return s