可能重复:
How to clone a list in python?
What is the best way to copy a list in Python?
original_list = [Object1(), Object2(), Object3()]
copy_list = original_list
original_list.pop()
如果从原始列表中删除对象,如何保持副本列表不被更改?
原始列表
[<Object.Object instance at 0x00EA29E0>, <Object.Object instance at 0x00EA2DC8>, <Object.Object instance at 0x00EA2EE0>]
弹出原始列表后复制列表(我希望它与上面的内容相同)
[<Object.Object instance at 0x00EA29E0>, <Object.Object instance at 0x00EA2DC8>]
答案 0 :(得分:6)
使用copy.deepcopy()进行深层复制:
import copy
copy_list = copy.deepcopy(original_list)
对于浅层副本,请使用copy.copy():
import copy
copy_list = copy.copy(original_list)
或没有指定端点的切片:
copy_list = original_list[:]
请参阅copy docs以获取有关深度和深度的说明。浅拷贝。
答案 1 :(得分:3)
这样可行。
import copy
copy_list = copy.copy(original_list)
另外
copy_list = list(original_list)
答案 2 :(得分:1)
使用deepcopy
返回x的深层副本。
from copy import deepcopy
original_list = [Object1(), Object2(), Object3()]
copy_list = deepcopy(original_list)
original_list.pop()
但请注意,在您的情况下切片会更快:
copy_list = original_list[:]