在for循环中列出append()

jim*_*iat 23 python for-loop append

在Python中,尝试使用循环对列表执行最基本的追加功能:不确定我在这里缺少的内容:

a=[]
for i in range(5):    
    a=a.append(i)
a
Run Code Online (Sandbox Code Playgroud)

收益: 'NoneType' object has no attribute 'append'

Raf*_*lar 37

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.
Run Code Online (Sandbox Code Playgroud)

编辑:正如胡安在评论中说的那样确实会有所回报 None

  • **返回一个值.它返回"无". (2认同)

lin*_*usg 8

你并不需要分配,list.append(x)将始终追加xa,因此没有必要重新界定德a.

a = []
for i in range(5):    
    a.append(i)
print(a)
Run Code Online (Sandbox Code Playgroud)

是你所需要的全部.这是有效的,因为lists是可变的.

另请参阅有关数据结构文档.


Mun*_*med 6

无需重新分配。

a=[]
for i in range(5):    
    a.append(i)
a
Run Code Online (Sandbox Code Playgroud)