在python中创建备份列表

Mic*_*ael 5 python list

我想在python中创建另一个列表的备份列表.这是代码的一个例子.

x = [1,2,3]  
y = x  
x.pop(0)  

print y
Run Code Online (Sandbox Code Playgroud)

然而,y = [2,3]当我希望它产生时,这会产生结果[1,2,3].我如何使y列表独立于x列表?

NPE*_*NPE 17

对此有一个常见的习语y = x[:].这使得它的浅层副本x存储起来y.

请注意,如果x包含对象的引用,y则还将包含对相同对象的引用.这可能是也可能不是你想要的.如果不是,请看一下copy.deepcopy().


Mic*_*ter 5

这是一种方法:

import copy

x = [1,2,3]
y = copy.deepcopy(x)
x.pop(0)
print x
print y
Run Code Online (Sandbox Code Playgroud)

从这里的文档