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

  • 国际货运代理企业应当遵循哪些原则
  • 个人所得税定额扣除怎样理解
  • 国际货物运输免征所得税
  • 境外投资子公司审计报告人民币汇率
  • 联营企业和合营企业长期股权投资的方式
  • 增资导致丧失控制权
  • 置换新房产支付资金怎么纳税?
  • 试驾车抵税
  • 海关废品回收
  • 公司购车按揭利息可以开票吗
  • 调整以前年度销售费用会计分录
  • 营改增后企业要交哪些税
  • 小规模纳税人开具1%增值税专用发票可以抵扣吗
  • 厂房消防安装图
  • 企业财产保险费率的影响因素
  • 注册资本金印花税税率是多少
  • 增值税专用发票的税率是多少啊
  • 技术维护费属于劳务还是研发和技术服务
  • 教育咨询发票怎么开具
  • 水电费的增值税计入什么科目
  • 递延收益摊销会计分录
  • 收到政府的专项资金
  • 预付加油充值卡可以报销吗
  • win7系统重启怎么还原系统
  • 上网的操作
  • linux系统中的文件访问权限包括几种
  • win7为什么现在不能用了
  • 提供建筑安装服务
  • win10桌面没有我的电脑图标怎么办
  • php编程风格规范要求
  • 收益性支出与资本性支出的主要特点
  • 贷款减值损失计提还能转回吗
  • linux双ip路由设置方法
  • 福克兰群岛属于哪国
  • html在线小游戏
  • 收到退回残保金怎么做账
  • 固定资产支出计入什么科目
  • 如何用python绘制
  • 不动产投资应该怎么做账
  • 织梦怎么改文字
  • mongodb 入门
  • python转换数字
  • 职工食堂的费用怎么入账
  • 收支平衡表excel怎么做
  • 用友要怎么删除凭证
  • 商贸企业的存货周转率什么水平属于正常
  • SQL Server 2008 R2 超详细安装图文教程
  • 酒吧会计如何做工作
  • 挂靠的项目如何做账?
  • 印花税根据不同的税目,分别采用
  • 外币账户记账方法
  • 人力资源外包服务平台
  • 仓库用托盘怎么入账
  • 以物易物方式销售货物的增值税处理
  • 预付货款属不属于消费信用
  • 加计抵减政策15%声明
  • 开票金额大于付款金额 多余部分为返点
  • 注销企业基本户销户规定
  • 企业包装物核算范围
  • mysql连接查询的几种方式
  • windows7开机黑屏安全模式也进不去
  • iis设置mime
  • video for windows是什么
  • mac系统常见问题
  • mac系统怎么设置默认应用
  • mscorsvw.exe是病毒吗
  • msscli.exe - msscli是什么进程 有什么用
  • win7打印机删除后怎么恢复
  • 如何在linux shell关闭443端口
  • unity协程yield
  • div垂直居中怎么设置css
  • python用于读取文本文件内容的方法
  • html标签页效果
  • java learning
  • 武汉税务代理大概多少钱
  • 无锡税务举报网站
  • 河南个人社保查询登录入口官网
  • 武汉 税务局
  • 北京朝阳地税局电话号码
  • 安徽国家税务局网上办税平台12366
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设