博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中的深拷贝与浅拷贝
阅读量:5923 次
发布时间:2019-06-19

本文共 1361 字,大约阅读时间需要 4 分钟。

  • 直接赋值:其实就是对象的引用(别名)。

  • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象,而是直接引用,也就是类似于添加了一个链接而已,两个变量指向的是同一块内存地址。

  • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。是会开辟一个新的内存,存放数据,就是两块不同内存。

import copyli = [1,1,2,3,4,5,6,7,7,8]#li2=li #两个list地址是一样的,称为浅拷贝# li2=li[:] #复制成一个新的list,地址不一样li2=copy.deepcopy(li)#称为深拷贝,又开辟了新的内存地址print(id(li)) print(id(li2))for i in li2:    if i%2!=0:        li.remove(i)print(li)以上输出结果:# 39218888# 39219016# [2, 4, 6, 8]
import copya=[1,2,3,4,5]#浅拷贝,原值改变,复制的那个值也会改跟着改变b=aprint(b) # [1, 2, 3, 4, 5]a.append(6)print(a) # [1, 2, 3, 4, 5, 6]print(b) # [1, 2, 3, 4, 5, 6]#深拷贝,原值改变,复制的那个值不会随之改变b=copy.deepcopy(a)a.append(6)print(a) # [1, 2, 3, 4, 5, 6]print(b) # [1, 2, 3, 4, 5]

解析

1、b = a: 赋值引用,a 和 b 都指向同一个对象。

2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。

b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。

更多实例

以下实例是使用 copy 模块的 copy.copy( 浅拷贝 )和(copy.deepcopy ):

实例

import copya = [1, 2, 3, 4, ['a', 'b']]  # 原始对象b = a  # 赋值,传对象的引用c = copy.copy(a)  # 对象拷贝,浅拷贝d = copy.deepcopy(a)  # 对象拷贝,深拷贝a.append(5)  # 修改对象aa[4].append('c')  # 修改对象a中的['a', 'b']数组对象print('a = ', a)print('b = ', b)print('c = ', c)print('d = ', d)

 

以上实例执行输出结果为:

('a = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])('b = ', [1, 2, 3, 4, ['a', 'b', 'c'], 5])('c = ', [1, 2, 3, 4, ['a', 'b', 'c']])('d = ', [1, 2, 3, 4, ['a', 'b']])

 

转载于:https://www.cnblogs.com/denise1108/p/10061200.html

你可能感兴趣的文章
今年双11,飞猪的“非OTA”之路走得怎么样了?
查看>>
苹果下架APP数量暴增超万款,看看你常用的在列吗?
查看>>
南非总统顾问一句想试试 马云当真了 做了件事你都想不到
查看>>
长虹软服常清雪:赋能数字化转型 看传统企业如何抢占先机
查看>>
前方记者表示,下次再遇到这种队友,他会选择自我了断
查看>>
颓废老公的“第二春“?菜鸟让他走上xing福新生活
查看>>
快播创始人王欣疑似要推社交产品 再晒新团队合照
查看>>
自治数据库是甲骨文跻身云计算超级玩家的致胜关键吗?
查看>>
用了这么久的热插拔 才知道原理是什么
查看>>
助您赢百万暴风智能AI无屏电视有点意思
查看>>
迅雷向链享云售让部分区块链业务:包括链克与链克商城
查看>>
中国科学家发现侏罗纪时期带羽毛恐龙“飞行”新证据
查看>>
中甲新军能否重返赛场再成疑 川足前景扑朔迷离
查看>>
Java开发书单
查看>>
糖尿病患者应养狗?研究称狗能提醒主人血糖变化
查看>>
网易黑钻合约突然冲高至28元,无法提现的虚拟货币你会继续挖矿吗
查看>>
网易星球黑钻拍卖匆匆下架,低于大众预期,挖矿热或将开始退潮
查看>>
净水器爆裂居民家中被淹 厂家回应“正在协商处理”
查看>>
新一代网红打卡地诞生!百度携手世茂打造智慧酒店!
查看>>
阿里在FIRST大会宣布 正式启动ASRC全球合作伙伴计划
查看>>