繁体   English   中英

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

[英]How to sum up each element in array list?

有一点写出代码。

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

a = ([0, 0, 1, 2], [0, 1, 1, 0], [0, 0, 1, 0], [1, 0, 1, 3], [0, 1, 1, 3])

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

如在返回 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

我得到索引大小错误。 我该怎么办?

sum(zip(*a)[0])

zip是一个函数,它接受任意数量的 n 个长度的序列并返回 n 个元组(除其他外)。 这些元组中的第一个具有传递给zip的元组中最先出现的元素。 sum将它们加在一起。

编辑:

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

sum(next(zip(*a)))

反而。 对于所有这些款项,

map(sum, zip(*a))
a = ([0, 0, 1, 2], [0, 1, 1, 0], [0, 0, 1, 0], [1, 0, 1, 3], [0, 1, 1, 3])

尝试使用列表推导式:

sum([item[0] for item in a])

上面的行获取元组中每个列表的第一个元素,然后将其放入一个临时列表中。 然后我们在那个临时列表上调用 sum,它产生了答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM