for循环中的List append()

2024-04-19 00:33:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,尝试使用循环对列表执行最基本的append函数: 不确定我在这里缺少什么:

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

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


Tags: 函数noin列表forobjectrangeattribute
3条回答

不需要赋值,list.append(x)将始终将x附加到a中,因此不需要重新定义a

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

是你所需要的。这是因为lists是可变的。

另请参见docs on data structures

无需重新分配。

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

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.

编辑:正如Juan在评论中所说,它确实返回了一些东西,None

相关问题 更多 >