首页 > 解决方案 > 在 for 循环中总结列表的元素

问题描述

所以我的问题的基础在这里给出。毕竟我需要添加列表的元素。在最简单的例子中:

first = [1,2]
second = [6,7]

然后

[x + y for x, y in zip(first, second)]

这使:

#[7,9]

但是我的问题是我正在通过 for 循环生成许多列表。在 for 循环中,列表没有被存储,因此print(list)在循环结束时使用它们来查看它们并打印列表。现在我如何编写代码来查看生成的列表并以上面给定的方式对元素求和?

例子:

l = []
for i in range(2):
    l= list(range(5))
    print(l)

以上产生:

#[0, 1, 2, 3, 4]
#[0, 1, 2, 3, 4]

如何在 for 循环中添加一行来对列表的一个一个元素进行求和以获得:

#[0, 2, 4, 6, 8]

标签: pythonlistfor-loop

解决方案


使用一个变量来保存总数,并在循环中更新它

totals = [0]*5
for i in range(5):
    l = list(range(5))
    totals = [x + y for x, y in zip(totals, l)]
print totals

或者您可以将所有列表保存在另一个列表中,然后使用您的原始想法:

all_lists = []
for i in range(5):
    l = list(range(5))
    all_lists.append(l)
totals = [sum(lists) for lists in zip(*all_lists)]

推荐阅读