浅拷贝:
是指复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程
示例:
L = [3.1, 3.2]
L1 = [1, 2, L] #[1, 2, [3.1, 3.2]]
L2 = L1.copy() #[1, 2, [3.1, 3.2]]浅拷贝
L[0] = 3.14
L1 # [1, 2, [3.14, 3.2]]
L2 # [1, 2, [3.14, 3.2]] 为什么变为3.14?
# L1[2] 和 L2[2] 共同拥有 L绑定的对象
深拷贝:
示例:
import copy # 导放copy模块
L = [3.1, 3.2]
L1 = [1, 2, L] #[1, 2, [3.1, 3.2]]
L2 = copy.deepcopy(L1) # 深拷贝
L[0] = 3.14
L1 # [1, 2, [3.14, 3.2]]
L2 # [1, 2, [3.1, 3.2]] 此列表不受影响
注:
深拷贝通常只对可变对象进行深层复制,不可变对象通常不会被复制