深浅拷贝

 

import copy

"""浅拷贝只拷贝外层地址,内容受外层地址内容的改变而改变;
深拷贝是复制内容到一个新的地址,内容不受拷贝对象的更改而更改"""
a = [11, 22]
b = [33, 44]
c = [a, b]#产生一个新的id
d = copy.copy(c)#复制c的外层a,b的地址
e = copy.deepcopy(c)#复制c的地址
print(id(c))#1561637434056
print(id(d))#1561637433992
print(id(e))#1561637433928
c.append([55, 66])#
a.append(9)
e.append(8)
d[0][1]=0
print(c)#受a,b,c的内容改变而改变  [[11, 22, 9], [33, 44], [55, 66]]
print(d)#受a,b,d的内容改变而改变   [[11, 22, 9], [33, 44]]
print(e)#复制了c的内容产生一个新的地址,只受e的内容改变而改变  [[11, 22], [33, 44], 8]
print(a)#  d[0][1]=0改变了指向地址的值   [11, 0, 9]

 

posted @ 2020-06-20 22:33  行走的小z  阅读(84)  评论(0编辑  收藏  举报