python中的深拷贝和浅拷贝,python中深浅拷贝

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: