简单列表迭代添加不起作用

时间:2014-07-13 08:29:18

标签: list python-2.7

我有一些列表中的分数"分数"。我想使用此列表创建另一个列表" progress"其中每个项目是"点"中的项目的累进总和。

这是"积分"列表:

points = [1, 2, 3, 1, 0, 2]

这就是"进步"列表应该看起来:

progress = [1, 3, 6, 7, 7, 9]

这是我的代码,不起作用:

points = [1, 2, 3, 1, 0, 2]
progress = []
start = []
for i in points:
    start += [i]
    progress.append(start)
print("progrress: ")
print(progress[0])

运行代码时得到的结果是:

progrress: 
[1, 2, 3, 1, 0, 2]

显然我错过了一些简单的东西,但我无法找到它。

2 个答案:

答案 0 :(得分:0)

[points]points创建一个列表,该列表已经是一个列表,因此您的循环遍历[[1, 2, 3, 1, 0, 2]],即它仅执行i = [1, 2, 3, 1, 0, 2]的1次迭代。你不需要这些额外的[]

同样适用于start,它应该是一个整数。

在将start附加到progress之前,您还希望增加{{1}}。

答案 1 :(得分:0)

这是一个有效的代码。试一试

points = [1, 2, 3, 1, 0, 2]
progress = []

for i in range(len(points)):
    progress.append(sum(points[0:i+1:]))

print progress

根据您的期望打印[1, 3, 6, 7, 7, 9]