程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(2)

python中深复制与浅复制的区别

发布于2019-08-07 14:18     阅读(911)     评论(0)     点赞(5)     收藏(3)


python中深复制与浅复制的区别
深复制:即将原对象中所有的值完全复制一份放在内存中(包括可变数据类型对象),即使原对象更改,也不影响其值。

import copy
l1=[1,2,3,[1,2,3]]
l2=copy.deepcopy(l1)
l2[-1].append(4)
l1
  • 1
  • 2
  • 3
  • 4
  • 5

这里l2是l1的深复制,即,代码第四行是在l2的最后一个元素添加一个数字4,但是l1的原来的内容没有发生变化,l1=[1,2,3,[1,2,3]],而l2=[1,2,3,[1,2,3,4]]
浅复制:浅复制和深复制是对应的一种复制(可能不太准确,我是这么理解的),浅复制列表时,当修改的元素为可变对象(常见的有list,dict,set),修改的操作会修改原列表。

import copy
l1=[1,2,3,[1,2,3]]
l2=copy.copy(l1)
l2[-1].append(4)
l1
  • 1
  • 2
  • 3
  • 4
  • 5

这里的l2为l1的浅复制(copy),同上,但是这里与上面的不同的是,l1=[1,2,3,[1,2,3,4]],l2=[[1,2,3,[1,2,3,4]],很明显l1和l2一样的。
PS:以前看过一个表格,记录了这个深复制与浅复制的区别,忘记在哪了,找到了再来更新一下,python新手一枚,如果有写的不对地方,还请指教,谢谢



所属网站分类: 技术文章 > 博客

作者:pinggo

链接:https://www.pythonheidong.com/blog/article/11320/70903a13601abc1b29b9/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)