【发布时间】:2018-07-27 00:56:34
【问题描述】:
例如,假设我想对列表 a 进行深层复制,名为 b:
a = [1,2,3,4,5]
两者有什么区别:
import copy
b = copy.deepcopy(a)
和:
b = a*1
在这两种情况下,我都创建了一个新对象(即id(a) == id(b) 是False),那么我应该了解哪些实际差异?谢谢!
【问题讨论】:
-
是的。一个是深拷贝,另一个是浅拷贝。在这种特定情况下没有区别,但如果你有可变对象,这可能会导致意想不到的结果
-
谢谢,有道理。因此,在制作可变对象容器的副本时,差异会变得很明显。