深拷贝和浅拷贝的区别
程序员文章站
2024-01-17 22:02:10
...
浅拷贝 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
print(L1) #[1, 2, [3.14, 3.2]]
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]]
l2[2][0] = 3.14
print(l1) #[1, 2, [3.1, 3.2]]
print(l2) #[1, 2, [3.14, 3.2]]
深拷贝和浅拷贝最大的区别在于copy之后修改其中一个对象:
浅拷贝全部修改
深拷贝只修改 要修改的对象
上一篇: mysql数据库不能添加NULL值