如何总结数组列表中的每个元素?

Vin*_*nci -2 python arrays list

有点写出代码.

例如,如果我有一个数组:

a = ([0, 0, 1, 2], [0, 1, 1, 0], [0, 0, 1, 0], [1, 0, 1, 3], [0, 1, 1, 3])
Run Code Online (Sandbox Code Playgroud)

如果我想添加每个项目的第一个元素,

如同返回0 + 0 + 0 + 1 + 0,0 + 1 + 0,0 + 0的列表...

我写了代码:

def test(lst):
  sum = 0
  test_lst = [] 
  i = 0
  while i in range(0, 4):
    for j in range(0, len(lst)):
      sum += lst[j][i]
      test_lst.append(sum)
      i += 1 
 return test_lst
Run Code Online (Sandbox Code Playgroud)

我得到索引大小错误.我怎么能这样做?

Pat*_*ugh 6

sum(zip(*a)[0])
Run Code Online (Sandbox Code Playgroud)

zip是一个函数,它接受任意数量的n长度序列并返回n个元组(以及其他内容).这些元组中的第一个具有传递给元组的第一个元素zip. sum将它们加在一起.

编辑:

在Python 3中,上述方法不起作用.使用:

sum(next(zip(*a)))
Run Code Online (Sandbox Code Playgroud)

代替.对于所有这些总和,

map(sum, zip(*a))
Run Code Online (Sandbox Code Playgroud)