2017-07-18 69 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