1.浅复制
copy.copy()
import copy
list1 = [1,2,3]
list2 = copy.copy(list1)
list3 = copy.deepcopy(list1)
print(list2)
print(list2 is list1)
print(id(list2))
print(list3)
print(list3 is list1)
print(id(list3))
运行结果:
[1, 2, 3]
False
2984288371968
[1, 2, 3]
False
2984288371904
浅复制内存分析:
2.深复制
copy.deepcopy()
import copy
list1 = [1,2]
list2 = [3,4]
#复合对象
list3 = [list1,list2]
list4 = copy.copy(list3)
list5 = copy.deepcopy(list3)
print(list4[0] is list3[0])
print(list5[0] is list3[0])
运行结果如下:
True
False
内存分析:
3.区别与联系:
1.联系
复制出一个新的备份出来
2.区别
对于普通的对象没有区别
如果目标对象是符合对象(一个对象的成员变量还是对象),有区别
深复制 递归复制 list2 = [[1,2],[3,4]]
浅复制 只复制直接对象 list1 = [1,2,3]