如何在不使用'append()'的情况下将新值添加到列表中,然后将值存储在新创建的列表中?

9 python python-3.x

我一直在尝试这个.

>>> 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中有没有其他方法可以做到这一点?

The*_*oom 6

因为该函数append()会修改列表并返回None

做您想做的事的最佳实践之一是使用+运算符。

让我们举个例子:

>>> x = [4, 5]
>>> y = x + [7]
>>> x
[4, 5]
>>> y
[4, 5, 7]
Run Code Online (Sandbox Code Playgroud)

+操作创建一个新的列表,并保持原始列表不变。


Tho*_*tze 5

这是可能的,因为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)