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
vslst
!!请修复代码它真的很糟糕。但是如果他需要将a
作为一个元组怎么办?谢谢@leaf的反馈!让我做一些编辑。我喜欢这个答案。在它的基础上,[zip(*a)中x的总和(x)]
怎么样。按OP的要求返回整个结果列表。我嫉妒你的回答!比我的好多了@THeerenmap(sum,zip(*a))
Ah。美好的我应该习惯使用地图。
sum([item[0] for item in a])