python列表复制是深拷贝还是浅拷贝,怎么做?

时间:2012-12-25 06:09:36

标签: python list shallow-copy deep-copy

如何在python中为列表完成深层复制?

我对复制列表感到有些困惑。它是使用浅拷贝还是深拷贝? 另外,子列表的语法是什么?它是g=a[:]吗?

2 个答案:

答案 0 :(得分:3)

新列表是参考文献的副本。 g[0]a[0]都引用同一个对象。因此这是浅拷贝。您可以看到copy模块的deepcopy方法用于递归复制容器,但根据我的经验,这不是常见的操作。

在风格上,我更喜欢更明确的g = list(a)来创建列表的副本,但创建完整切片具有相同的效果。

答案 1 :(得分:0)

Python Doc开始,您必须使用copy.deepcopy(x)