嵌套列表的按元素求和

时间:2020-07-09 18:07:48

标签: python sum nested-lists elementwise-operations strerror

我有一个名为list_6的嵌套列表:

[[-1,1,-1,1,-1,1,1,0,-1,0,-1,-1,1,1,1,0,1,-1,-1 ,-1,1,1,1,1,0,-1,0,0,0,1,0,-1,1,1,-1,0,0,1,1,-1,0, -1,1,1,-1,1,-1,-1,-1,1,-1],...]]

列表中的每个元素都包含-1,1的整数,并且元素的长度不相等,列表中有20个元素

我想创建一个名为list_7的新列表,如下所示:

[[13],[4],[5],...]],以便对嵌套列表中的每个元素求和,并打印结果。我尝试使用iter.zip_longest:

[itertools.zip_longest(* list_6,fillvalue = 0)中i的和(i)

但是出现错误功能:

'str'对象不可调用

1 个答案:

答案 0 :(得分:6)

您可以使用列表理解https://www.programiz.com/python-programming/list-comprehension

list_7 = [sum(inner_list) for inner_list in list_6]

在括号([])中,您要遍历list_6中的每个项目。 由于list_6中的每个项目本身都是一个列表(inner_list,我们可以在列表上调用python的sum函数来获取inner_list https://www.w3schools.com/python/ref_func_sum.asp中的值之和。

我现在看到您正在寻找要列出的总额([[13],[4],[5],...]],),在这种情况下,您想这样做:

list_7 = [[sum(inner_list)] for inner_list in list_6]

sum(inner_list)前后加上方括号会创建一个新列表,其唯一条目是inner_list的总和。