我一直在尝试这个.
>>> x = [4,5]
>>> y = x.append(7)
>>> print y
None
>>>print x
[4, 5, 7]
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
当我尝试将值存储在新列表中y并打印它时,它会导致None并且它也会更改当前列表`x.
在Python中有没有其他方法可以做到这一点?
因为该函数append()会修改列表并返回None。
做您想做的事的最佳实践之一是使用+运算符。
让我们举个例子:
>>> x = [4, 5]
>>> y = x + [7]
>>> x
[4, 5]
>>> y
[4, 5, 7]
Run Code Online (Sandbox Code Playgroud)
在+操作创建一个新的列表,并保持原始列表不变。
这是可能的,因为x.append()是一种列表方法,x可以就地改变列表。不需要返回值,因为所有方法需要做的就是执行副作用。因此,它返回None,您将其分配给变量y。
我认为你想要创建一个副本x并附加到它:
y = x[:]
y.append(7)
Run Code Online (Sandbox Code Playgroud)
或分配y实际创建新列表的列表操作的结果:
y = x + [7]
Run Code Online (Sandbox Code Playgroud)