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

  • 增值税税率改变后原项目的新增单价按哪个税率
  • 简述入伙、退伙的含义与退伙的形式
  • 企业所得税属于地方税吗
  • 汇算清缴的费用标准
  • 增资后调减资本怎么计算
  • 营改增后超市陈列费账务处理
  • 考务费属于什么税目
  • 业务招待费进项税额需要转出吗
  • 公司将我转到另外一家公司
  • 无票收入应附什么单据
  • 红字发票信息表可以撤销吗
  • 增值税发票查询
  • 固定资产折旧在资产负债表属于什么
  • 其他综合收益是什么类科目
  • 小规模纳税人增值税优惠政策2023
  • 损益类科目包括收入类和费用类么
  • 长期待摊费用以后怎么摊销
  • 基金的业绩是什么
  • 往来形式的投资款是借款吗
  • 预提材料运费怎么计算
  • 物业公司物业费都交什么税
  • 直接人工成本的计算
  • 新版edge浏览器如何恢复设置
  • windows11怎么创建宽带拨号连接图标
  • windows7iis安装
  • 公司租用员工的车租车协议
  • win7系统咋样
  • 公司过户费用怎么入账
  • 购入已提完折旧的固定资产怎么入账
  • win11怎么打开设置
  • 限额领料单一般一式几联
  • mac快捷键是什么意思
  • dm分区工具图解教程
  • 自制生产设备领用原材料按照什么确认收入
  • 怎么处理坏账准备的问题
  • 纳税人提供应税服务
  • thinkphp教程
  • 企业出售生产设备能开票吗怎么开
  • php深度分析
  • 失控增值税专用发票
  • 定期定额和核定征收哪个好
  • iis搭建网站教程win10
  • addr指令
  • 销售部门招待费用预算
  • 现金流量表季度期初现金余额怎么填
  • 销售精装修房如何做账
  • 公司租入厂房怎么做账
  • Mongodb中MapReduce实现数据聚合方法详解
  • 防暑降温费用发放标准
  • 差旅费误餐补助
  • 领用库存商品用于生产产品
  • 失控发票已补交什么意思
  • 影响企业所得税的因素
  • 红字更正法的使用范围是什么
  • 银行账户是不是卡号
  • 收到政策性搬迁短信
  • 管理费怎么扣除
  • 社保的会计核算方法
  • sql纵向排列改为横向
  • mysql类似软件
  • windows10 mobile最后更新
  • linux命令行怎么查看公网ip
  • linux版本ubuntu
  • win10升级补丁位置
  • 怎么看清水印
  • 电脑自带的groove音乐用不了
  • cocos设计模式
  • 计算机图形学是什么专业
  • 深入理解javascript特性.pdf
  • exceltype函数的用法
  • 安卓性能测试主要测试的是
  • 使用的英文
  • 猫的所有视频
  • [置顶]马粥街残酷史
  • js基础教程
  • 已申报的纳税申报表怎么修改
  • 浦东税务15所
  • 四川国税网上申报大厅
  • 昆明学院领导班子
  • 异辛烷征收消费税2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设