【发布时间】:2019-03-13 16:58:37
【问题描述】:
我明白深拷贝和浅拷贝有什么区别。
深拷贝将一个对象复制到另一个对象中。这意味着如果你使 对对象副本的更改,不会影响原始对象。 在 Python 中,我们为此使用函数 deepcopy(),并导入 模块副本。我们像这样使用它:
为了可视化它,我使用了 python 导师并得到了这个,
import copy
a = [1, 2, 3]
b = copy.deepcopy(a)
这是有道理的,因为当我使用 deepcopy() 函数时它创建了一个新对象。
另一方面,浅拷贝是,
然而,浅拷贝将一个对象的引用复制到另一个对象。所以, 如果我们在副本中进行更改,它将影响原始对象。 为此,我们有函数 copy()。
但是当我使用浅拷贝时,为什么会得到相同的结果?
import copy
a = [1, 2, 3]
b = copy.deepcopy(a)
c = copy.copy(a)
据我了解,浅拷贝应该引用同一个对象(即a而不是如下创建新对象,
c = a
谁能告诉我为什么deepcopy() 和浅拷贝都创建一个新对象?
【问题讨论】:
-
改用
a = {'A': [1, 2, 3]}试试。
标签: python