位置: IT常识 - 正文

Python深浅拷贝是什么(python深拷贝与浅拷贝区别)

编辑:rootadmin

推荐整理分享Python深浅拷贝是什么(python深拷贝与浅拷贝区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python深拷贝和浅拷贝详解,python深拷贝和浅拷贝应用场景,python中深浅拷贝,python深拷贝和浅拷贝应用场景,python深拷贝浅拷贝和赋值,python深拷贝浅拷贝和赋值,python深拷贝浅拷贝,python中深浅拷贝,内容如对您有帮助,希望把文章链接给更多的朋友!

一、浅拷贝

浅拷贝是对一个对象的顶层拷贝,通俗地讲就是:拷贝了引用,并没有拷贝内容。

a=[1,2,3]print(id(a))b=aprint(b)print(id(b))a.append(4)print(a)print(b)

运行结果为:

1965053928072[1,2,3]1965053928072[1,2,3,4][1,2,3,4]

二、深拷贝

深拷贝是对于一个对象所有层次的拷贝,重新开辟内存地址。

importcopya=[1,2,3]print(id(a))#使用copy模块b=copy.deepcopy(a)#打印b的内存地址print(id(b))a.append(4)print(a)print(b)

运行结果为:

20351579696722035158105992[1,2,3,4][1,2,3]

相关推荐:《Python视频教程》

三、深浅拷贝对比

importcopya=[1,2,3]b=[4,5,6]c=[a,b]d=c#直接赋值,浅拷贝print("c的内存地址为:%s"%id(c))print("d的内存地址为:%s"%id(d))#使用copy模块#深拷贝,重新开辟内存,并内容独立e=copy.deepcopy(c)#深拷贝,重新开辟内存,但是新内容里面仍保存原来的引用f=copy.copy(c)#打印e,f的地址print("e的内存地址为:%s"%id(e))print("f的内存地址为:%s"%id(f))#改变a的值a.append(44)#打印a,b,c,d,e,fprint("a=%s"%a)print("b=%s"%b)print("c=%s"%c)print("d=%s"%d)print("e=%s"%e)print("f=%s"%f)Python深浅拷贝是什么(python深拷贝与浅拷贝区别)

运行结果为:

c的内存地址为:2514746494856d的内存地址为:2514746494856e的内存地址为:2514746494920f的内存地址为:2514746494664a=[1,2,3,44]b=[4,5,6]c=[[1,2,3,44],[4,5,6]]d=[[1,2,3,44],[4,5,6]]e=[[1,2,3],[4,5,6]]f=[[1,2,3,44],[4,5,6]]

说明:

1.c和d的内存地址一样,说明是浅拷贝,两个引用指向的是同一块内存。

2.c,e,f内存地址不一样,说明e和f都是深拷贝,都重新开辟的内存地址。

3.在a追加了元素44之后,打印的e中并有追加44,说明深拷贝,内容独立。

4.在a追加了元素44之后,打印的f中也追加44,说明f也重新开辟了内存,但是新内容里面保存的是原来的引用。

四、copy对可变和不可变对象的不同

1、可变类型使用copy

importcopya=[1,2,3]b=copy.copy(a)print(id(a))print(id(b))a.append(4)print(a)print(b)

运行结果为:

16266777178321626677715784[1,2,3,4][1,2,3]

2、不可变类型使用copy

importcopya=(1,2,3)b=copy.copy(a)print(id(a))print(id(b))

运行结果为:

20434442807042043444280704

总结:

简单的赋值是浅拷贝。

copy模块里面的copy()函数可以做一层深拷贝,虽然重新开辟了新的内存,但新内存里面仍然存放得是原来的引用。

本文链接地址:https://www.jiuchutong.com/zhishi/310670.html 转载请保留说明!

上一篇:dedecms织梦的性能选项与其它选项的设置方法(织梦是什么框架开发的)

下一篇:python logging日志的禁用(python中的logging记录日志)

  • 节能服务公司可以做什么
  • 车险车船税会计分录
  • 城建税和教育费附加减免政策
  • 继续教育容易过吗
  • 或有资产的特点和或有资产的披露是什么
  • 捐赠的费用放在什么科目
  • 个税为负数如何申报
  • 所得税申报时成本数据填错怎么办
  • 一般纳税人技术服务免税发票怎么开
  • 母公司为子公司担保需要股东会决议吗
  • 企业所得税季报可以更正吗
  • 现金日记账是收付实现制吗
  • 核算无形资产的过程中,使用的会计账户有
  • 公允价值变动计入其他综合收益
  • 长期股权投资的账面价值怎么计算
  • 筹办期的工资费用是什么
  • 以库存商品抵偿债务
  • 收购公司固定资产注意事项
  • 支付的管理费用可以抵税吗
  • 企业收回报废产品合法吗
  • 未交税金期末数
  • 广告公司税收分析
  • 广告费准予扣除怎么算
  • 涉农贷款损失
  • 油卡充值属于什么行业
  • 一般纳税人技术开发税率
  • 会计费用涉及哪些科目?
  • 车船税的减免税
  • 库存现金进账单会计分录
  • 供应商赠送
  • 固定资产投资增值税进项税额抵扣规定
  • 固定资产的处理方法
  • phpemail正则
  • php创建二维数组
  • 计提长期待摊费用的会计分录
  • 合同结算账务处理分录
  • 多付货款退回的会计分录
  • 网速慢是什么情况
  • php接口验证
  • php自定义变量的方法是
  • 2023年第十一批专项债
  • 汇算清缴补交所得税怎么做凭证
  • 修改公司章程注意事项
  • 试运行收入会计分录
  • 已开发票作废和空白发票作废有什么不一样?
  • wordpress删除修订版本
  • 政府补助会计处理方法
  • 企业所得税的营业成本怎么填
  • 营业执照注销要钱吗
  • 全资子公司注销的账务处理
  • 在资产减值准备中符合条件可以转回的有
  • 小轿车折旧年限规定
  • 商场一般是怎么缴纳租金的
  • 政策性搬迁涉及的税种
  • 企业股权转让收入企业所得税
  • 预缴税款留抵是什么意思
  • 电商公司不用交税吗
  • 选用劳务派遣人员
  • 商业企业的营业成本包括
  • 机票价格分类
  • 车费属于什么会计科目类
  • 旅游业小规模纳税人税率是多少
  • 关于废止有关排污收费规章和规范性文件的决定
  • 大白菜一键装机教程
  • win7修改系统版本
  • centos安装vim命令
  • winxp内存不足怎么办
  • Fatal server error: could not open 无法进图形界面的解决办法
  • mmc.exe是什么进程
  • linux怎么恢复数据
  • 正则表达式语法 \d
  • python登录网站爬取数据
  • android音频播放器
  • 在WINDOWS系统中回收站的作用不包括
  • android缓存机制
  • python django运行
  • 完税证明和发票的关系
  • 公司车辆购置税怎么做账
  • 监理费合同按什么计算
  • 国税总局17号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设