如何在修改原始列表时使对象列表副本不更改?

15 浏览
0 Comments

如何在修改原始列表时使对象列表副本不更改?

这个问题已经有答案了:

可能是重复问题:

如何在Python中克隆列表?

什么是在Python中复制列表的最佳方法?

original_list = [Object1(), Object2(), Object3()]
copy_list = original_list
original_list.pop()

如果我从原始列表中删除一个对象,如何使复制列表不改变?

原始列表

[, , ]

从原始列表中弹出后的复制列表(我希望它与上面的内容相同)

[, ]

admin 更改状态以发布 2023年5月21日
0
0 Comments

这个会起作用。

import copy
copy_list = copy.copy(original_list)

同样地

copy_list = list(original_list)

0
0 Comments

copy.deepcopy()进行深拷贝:

import copy
copy_list = copy.deepcopy(original_list)

copy.copy()进行浅拷贝:

import copy
copy_list = copy.copy(original_list)

或者使用没有指定端点的切片:

copy_list = original_list[:]

请参阅拷贝文档,了解有关深层拷贝和浅层拷贝的解释。

0