python中的深拷贝和浅拷贝,python中深浅拷贝
Python轻型副本是对象的顶层副本。可变数据类型的浅层复制将复制此对象的引用;对于不可变数据类型,复制对象资源,即只复制对象的数据内容和父对象,不复制对象内部的子对象。
在python中,对象赋值实际上是对对象的引用。在创建一个对象并赋给另一个变量时,python并没有复制这个对象,只是复制了这个对象的引用。
浅拷贝(copy):
浅层拷贝是对象的顶层拷贝,拷贝引用。浅拷贝生成可变类型的浅拷贝(拷贝对对象的引用)。
对于不可变数据类型,复制对象资源,只复制对象的数据内容。复制父对象,而不是对象内部的子对象。
导入副本
c=copy.copy(列表)
版画艺术家;printc
[1,2,3,[a , b]]
[1,2,3,[a , b]]
list.append(5)
版画艺术家;printc
[1,2,3,[a , b],5]
[1,2,3,[a , b]]
列表[3][a , b]
名单[3]。追加( cccc )
版画艺术家;printc
[1,2,3,[a , b , cccc],5]
[1,2,3,[a , b , cccc]]内部的子对象已被更改打印(轻拷贝:)
导入副本
b=[1,2,3,4,5]
打印( idb: ,id(b))
h=copy.copy(b)
打印( idh ,id(h))
打印(h)
h .追加(6)
打印(h)
打印( idh ,id(h))
Print(b)# shallow copy新列表H变了,原来的B没变。
B[1]=n#列表元素改变后,新列表也不会改变
打印(h)
输出:
浅层拷贝:
( idb: ,140165805110552)
( idh ,140165805110480)
[1,2,3,4,5]
[1,2,3,4,5,6]
( idh ,140165805110480)
[1,2,3,4,5]
[1,2,3,4,5,6]推荐课程3360 Python入门及高级教学视频(极客学院)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。