#浅拷贝 拷贝父对象使用 copy(x) 函数,拷贝可变对象如 list 的最外层对象并实现隔离,
#但 list 内部的嵌套对象仍是未被隔离的引用关系,意思是嵌套对象内存指向同一个区域
from copy import copy,deepcopy
#浅拷贝最外层开辟新的内存空间
x=[1,2,3,4]
copy_x=copy(x)
copy_x.append(5)
print(copy_x)
print(x)
运行结果:
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
##浅拷贝内层元素引用关系
x=[1,2,3,4,[1,2,3]]
copy_x=copy(x)
copy_x[4].append(5)
print(copy_x)
print(x)
运行结果:
[1, 2, 3, 4, [1, 2, 3, 5]]
[1, 2, 3, 4, [1, 2, 3, 5]]
#深拷贝 把父对象全部拷贝 开辟新的内存,二者没有任何关系
x=[1,2,3,4,[1,2,3]]
copy_x=deepcopy(x)
copy_x[4].append(5)
print(copy_x)
print(x)
copy_x.append(10)
print(copy_x)
print(x)
运行结果:
[1, 2, 3, 4, [1, 2, 3, 5]]
[1, 2, 3, 4, [1, 2, 3]]
[1, 2, 3, 4, [1, 2, 3, 5], 10]
[1, 2, 3, 4, [1, 2, 3]]