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

List 简单列表迭代添加不起作用,list,python-2.7,List,Python 2.7,我有一些分数在“分数”列表中。我想使用此列表创建另一个列表“进度”,其中每个项目都是“点”中项目的累进总和 这是“点”列表: 以下是“进度”列表的外观: 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("progrres

我有一些分数在“分数”列表中。我想使用此列表创建另一个列表“进度”,其中每个项目都是“点”中项目的累进总和

这是“点”列表:

以下是“进度”列表的外观:

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]

显然,我遗漏了一些简单的东西,但我找不到它。

[points]
从已经是列表的
点创建一个列表,因此您的循环在
[[1,2,3,1,0,2]]
上迭代,也就是说,它只在
I=[1,2,3,1,0,2]
的地方进行一次迭代。您不需要这些额外的
[]

start
也是如此,它应该是一个整数


您还需要先递增
开始
,然后再将其添加到
进度

以下是一个工作代码。试试看

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]

谢谢Jules。但是当我删除点周围的[]时,我得到错误“TypeError:'int'对象不可编辑”OK。我已将“开始”移动到追加之前,并删除了围绕“点”的[]。但它只是生成了一个“点数”列表的副本。开始也应该是一个整数(我更新了我的答案)。请记住,您可以始终依赖列表的理解,例如:
[sum(points[:I+1])表示范围内的I(len(points))]
points = [1, 2, 3, 1, 0, 2]
progress = []

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

print progress