【发布时间】:2023-03-22 11:03:01
【问题描述】:
在官方 Python 文档中说 list.copy() 返回列表的浅表副本。 但是根据下面的代码,它是深拷贝,因为一个列表的变化不会导致另一个列表的变化。
>>> num1 = [1,2,3,4,5]
>>> num2 = num1.copy()
>>> num1.append(9)
>>> num1
[1, 2, 3, 4, 5, 9]
>>> num2
[1, 2, 3, 4, 5]
有什么问题?哪里出错了?
【问题讨论】:
-
这就是浅拷贝。您将浅拷贝与非拷贝混淆了。
-
复制很浅,因为如果
num1包含列表或字典,则不会复制这些结构。 -
如果 copy() 符合您的想法,为什么它是必要的功能?
num2 = num1不会做同样的事情吗? -
列表元素为数字时,浅层和深层没有区别;数字“下方”没有任何内容。
-
谁能给出详细解释的资源链接?
标签: python list copy deep-copy shallow-copy