关于python的深拷贝和浅拷贝

深拷贝 deep copy 和浅拷贝 shallow copy

浅拷贝 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]]
L[0] = 3.14
print(L1) # [1, 2, [3.14, 3.2]]
print(L2) # [1, 2, [3.14, 3.2]]

说明:
浅拷贝是指在复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程


深拷贝
对所有可变对象进行层层复制,实现对象的各自独立
例:

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]]
L[0] = 3.14
print(L1) # [1, 2, [3.14, 3.2]]
print(L2) # [1, 2, [3.1, 3.2]] #此列表不受影响

猜你喜欢

转载自blog.csdn.net/qq_43219213/article/details/82729589