如何附加到空列表的末尾?

Los*_*Lin 65 python

我有一个清单:

list1=[]
Run Code Online (Sandbox Code Playgroud)

列表的长度是未确定的,所以我试图将对象附加到list1的末尾,如下所示:

for i in range(0, n):

    list1=list1.append([i])
Run Code Online (Sandbox Code Playgroud)

但是我的输出一直给出这个错误:AttributeError:'NoneType'对象没有属性'append'

这是因为list1作为空列表开始吗?我该如何解决这个错误?

And*_*ffe 62

append实际上改变了列表.此外,它需要一个项目,而不是一个列表.因此,你所需要的只是

for i in range(n):
   list1.append(i)
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,请注意您可以使用range(n),在这种情况下.)

我假设您的实际使用更复杂,但您可以使用列表理解,这对于此更加pythonic:

list1 = [i for i in range(n)]
Run Code Online (Sandbox Code Playgroud)

或者,在这种情况下,在Python 2.x range(n)中实际上创建了您想要的列表,尽管在Python 3.x中,您需要list(range(n)).


Mik*_*ola 17

您不需要赋值运算符.追加返回无.

  • s /不需要/不应该使用/ (4认同)

Yur*_*ken 6

append返回 None,因此在第二次迭代时,您将调用appendNoneType 的方法。只需删除分配:

for i in range(0, n):
    list1.append([i])
Run Code Online (Sandbox Code Playgroud)