在for循环中列出append()

时间:2017-01-03 21:39:31

标签: python for-loop append

在Python中,尝试使用循环对列表执行最基本的追加功能: 不知道我在这里缺少什么:

a=[]
for i in range(5):    
    a=a.append(i)
a

返回: 'NoneType' object has no attribute 'append'

3 个答案:

答案 0 :(得分:33)

list.append函数不返回任何值(但是None),它只是将值添加到用于调用该方法的列表中。

在第一轮循环中,您会将None(因为append无法返回)分配给a,然后在第二轮中尝试调用a.append },a is None它会引发你正在发生的异常

您只需将其更改为:

a=[]
for i in range(5):    
    a.append(i)
a # the list with the new items.

编辑:正如胡安在评论中所说,它确实会返回一些内容,None

答案 1 :(得分:6)

您不需要作业,list.append(x)会始终将x追加到a,因此无需重新定义a

a = []
for i in range(5):    
    a.append(i)
print(a)

就是你所需要的。这是有效的,因为list是可变的。

另见docs on data structures

答案 2 :(得分:3)

无需重新分配。

a=[]
for i in range(5):    
    a.append(i)
a