浅拷贝 shallow copy
浅拷贝是指在复制过程中,只复制一层变量,不会复制深层变量绑定额对象的复制过程。
示例:
L = [3.1,3.2]
L1 = [1,2,L]
L2 = L1.copy() #浅拷贝
print(L1) #[1, 2, [3.1, 3.2]]
print(L2) #[1, 2, [3.1, 3.2]]
L2[2][0] = 3.14
L1.append(3)
print(L1) #[1, 2, [3.14, 3.2],3]
print(L2) #[1, 2, [3.14, 3.2]]
深拷贝 deep copy
复制对象及对象关联的对象一起复制过程叫做深拷贝
示例代码:
import copy
l = [3.1,3.2]
l1 = [1,2,l]
l2 = copy.deepcopy(l1) #深拷贝
print(l1) #[1, 2, [3.1, 3.2]]
print(l2) #[1, 2, [3.1, 3.2]]
l1[2][0] = 3.14
l1.append(3)
print(l1) #[1, 2, [3.14, 3.2],3]
print(l2) #[1, 2, [3.1, 3.2]]
深拷贝和浅拷贝最大的区别在于copy之后修改其中一个对象:
浅拷贝全部修改
深拷贝只修改 要修改的对象
博客介绍了浅拷贝和深拷贝的概念。浅拷贝只复制一层变量,不复制深层变量绑定的对象;深拷贝会复制对象及关联对象。二者最大区别在于复制后修改其中一个对象,浅拷贝会使全部修改,深拷贝仅修改指定对象。
943

被折叠的 条评论
为什么被折叠?



