该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
这就是所谓的 变异或破坏性@H_404_28@ 方法,即它将破坏或变异先前的对象成为一个新的(或新的状态)。
如果您想基于一个列表创建一个新列表而不破坏或更改它,则可以执行以下操作:
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']