深浅拷贝

Posted xiaozeng6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深浅拷贝相关的知识,希望对你有一定的参考价值。

 

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]

 

以上是关于深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

《关于JavaScript的深浅拷贝》

python--is/id==,集合,深浅拷贝

python深浅拷贝

我要学python之深浅拷贝原理

Python高级语法-深浅拷贝-总结(4.2.1)

Python 的深浅拷贝 终于明白了