在for循环中列出append()

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

a=[]

for i in range(5):

a=a.append(i)

a

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

回答:

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

在第一个循环中,您将分配None(由于不返回append)给a,然后在第二个循环中,它将尝试调用a.append,因为a isNone它将引发您看到的Exception

您只需要将其更改为:

a=[]

for i in range(5):

a.append(i)

print(a)

# [0, 1, 2, 3, 4]

list.append这就是所谓的 变异或破坏性 方法,即它将破坏或变异先前的对象成为一个新的(或新的状态)。

如果您想基于一个列表创建一个新列表而不破坏或更改它,则可以执行以下操作:

a=['a', 'b', 'c']

result = a + ['d']

print result

# ['a', 'b', 'c', 'd']

print a

# ['a', 'b', 'c']

仅作为必然结果,您可以append通过执行以下操作来模仿该方法:

a=['a', 'b', 'c']

a = a + ['d']

print a

# ['a', 'b', 'c', 'd']

以上是 在for循环中列出append() 的全部内容, 来源链接: utcz.com/qa/433330.html

回到顶部