python深拷贝(shallow copy)和浅拷贝(deep copy)
深拷贝和浅拷贝
浅拷贝(copy()):拷贝父对象,不会拷贝对象内部的子对象。
深拷贝(deepcopy()):是copy模块中的方法,完全拷贝了子对象和父对象
Python的copy模块提供了一个copy()函数,可以用来执行浅复制(shallow copy)。这个函数可以复制一个对象,包括列表对象,但不会复制对象的子对象。对于列表而言,这意味着创建了一个新列表,但列表中的元素仍然是原始列表中元素的引用。
import copy
a = [1, 2, 3]
b = a
print(id(a) == id(b))
b[0] = 11
print(a, b)
## 利用copy里面的函数实现浅拷贝
c = copy.copy(a)
print(id(a) == id(c))
c[1] = 222
print(a, c)
# 但是对于多维来说
a = [1, 2, [3, 4]]
c = copy.copy(a)
print(id(a) == id(c), id(a[2]) == id(c[2]))
# 实现深拷贝
e = copy.deepcopy(a)
print(id(e[2]) == id(a[2]))


浙公网安备 33010602011771号