Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何汇总数组列表中的每个元素?_Python_Arrays_List - Fatal编程技术网

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

Python 如何汇总数组列表中的每个元素?,python,arrays,list,Python,Arrays,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,

有一点写代码的能力

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

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
的元组中最先出现的元素<代码>总和将它们相加

编辑:

在Python3中,上述方法不起作用。使用:

sum(next(zip(*a)))
相反。尽管如此

map(sum, zip(*a))
尝试使用列表理解:

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

上面的行获取元组中每个列表的第一个元素,然后将其放入临时列表中。然后,我们在临时列表中调用sum,从而得到答案

len(a)
a
从何而来?@MorganThrapp似乎就是列表的元组。为什么增加
i
,为什么增加while循环???F和a??@AndrewL。对,但函数上下文中不存在名称
a
ls
vs
lst
!!请修复代码它真的很糟糕。但是如果他需要将
a
作为一个元组怎么办?谢谢@leaf的反馈!让我做一些编辑。我喜欢这个答案。在它的基础上,
[zip(*a)中x的总和(x)]
怎么样。按OP的要求返回整个结果列表。我嫉妒你的回答!比我的好多了@THeeren
map(sum,zip(*a))
Ah。美好的我应该习惯使用地图。
sum([item[0] for item in a])