位置: 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记录日志)

  • 制造业做贸易出口可以退税吗
  • 金税盘抵扣增值税申报
  • 如何开局增值税发票
  • 一般纳税人可以开免税发票吗
  • 飞机发票和行程单可以一起开吗
  • 甲方代付材料费合法吗
  • 保险金扣税吗
  • 售后回租产生的费用
  • 出口发票上的汇率填什么
  • 以固定资产增资子公司 可以溢价么
  • 半成品成本核算 一般企业怎么核算
  • 所有者权益的利得和损失
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 税收协助
  • 待处理财产损益的二级科目
  • 没有签订合同需要交税吗
  • 企业所得税上个季度赔钱下个季度挣钱
  • 结转成本计算方法
  • 计提工资怎么做账务处理
  • 现金流量表的填制方法和构成
  • 成本无发票如何处理
  • 供应商把价格算错了怎么办
  • deepin启动延时
  • 处理废料的会计分录
  • 公司备用金属于夫妻财产吗
  • 固态硬盘如何接入电脑
  • 机票增值税怎么计算
  • 餐费发票可以抵扣成本吗
  • PHP has encountered an Access Violation
  • 杜鹃花怎么养家庭养法视频
  • 结转消费成本的会计分录
  • 广告公司物料报价清单
  • 营改增全面推开为什么还叫试点
  • 设备租赁费属于固定成本吗
  • 短期借款利息的核算不可能涉及的账户是
  • php中验证码如何实现登录验证
  • 房地产公司收房款怎么分录
  • php环境搭建apache
  • 房屋折旧方法有哪些
  • 固定资产加速折旧是什么意思
  • 银行存款手工明细分类账
  • 房地产销售折扣
  • 高效快速编制会计分录如何做?
  • 持有至到期投资属于什么科目
  • 建筑企业提供服务的机制保障
  • 税收分类口诀
  • 营运资金周转率是什么指标
  • 主营业务收入账务处理分录
  • 民办非企业单位工会经费
  • 小规模不开票怎么做账
  • 一般纳税人不得领用专票的情形
  • 记账错误是什么意思
  • 库存商品核算
  • 完工结转的会计分录
  • 母公司与子公司关系
  • 企业会计准则第4号固定资产
  • 试运行收入冲减哪个项目
  • sql2005生成脚本
  • ubuntu怎么装
  • win7如何设置自动锁屏时间
  • centos 文件管理
  • mac电脑上的通讯录怎么同步到手机上
  • linux系统开机黑屏啥也没有
  • win10调小键盘
  • Win7旗舰版系统镜像文件
  • linuxmain函数
  • easyui multiple
  • 简述android中色值原理与表示形式
  • js中的垃圾回收机制有哪些方法
  • node.js怎么用
  • unity shader cull off
  • logcatapp
  • Python连接MySQL并使用fetchall()方法过滤特殊字符
  • android开发环境搭建实验报告总结
  • python动态加载py
  • 电子发票查询官网入口
  • 国家税务系统电子税务局电话
  • 云南省地方税务局关于城镇土地使用税
  • 上饶国资委领导班子成员名单
  • 云南省国税发票查询真伪查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设