python深拷贝_python 深拷贝与浅拷贝的区别
python中浅拷贝和深拷贝的区别如下:
1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝 拷贝对象及其子对象
如果拷贝对象是一个一维列表,那么浅拷贝和深拷贝没什么不同,都是重新申请一个新的内存地址。
import copy
list1 = [1,2,3,4]
print(id(list1))
list2 = list1.copy()
print(list2)
print(id(list2))
print(list1 is list2)
list3 = copy.deepcopy(list1)
print(list3)
print(id(list3))
print(list1 is list3)
96011592
[1, 2, 3, 4]
95979528
False
[1, 2, 3, 4]
31271112
False
因此,list1的改变不会影响到list2与list3。但是对于复杂一些的列表,例如嵌套列表、字典嵌套列表。浅拷贝与深拷贝两者便展示出完全不同的结果。
import copy
list1 = [1,2,3,4,[5,6]]
print('list1的id:',id(list1))
print('list1第4个元素的id:',id(list1[4]))
#浅拷贝
list2 = list1.copy()
print(list2)
print('list2的id:',id(list2))
print('list2第4个元素的id:',id(list2[4]))
#深拷贝
list3 = copy.deepcopy(list1)
print(list3)
print('list3的id:',id(list3))
print('list3第4个元素的id:',id(list3[4]))
#改变list1中的元素
list1[2] = 7
list1[4][1] = 8
print('list1:',list1)
print('list2:',list2)
print('list3:',list3)
#运行结果
list1的id: 95979528
list1第4个元素的id: 96011592
[1, 2, 3, 4, [5, 6]]
list2的id: 40773832
list2第4个元素的id: 96011592 #子对象的id值一样,表示浅拷贝没有拷贝对象,只是使用了列表的引用
[1, 2, 3, 4, [5, 6]]
list3的id: 96023432
list3第4个元素的id: 40773704
list1: [1, 2, 7, 4, [5, 8]]
list2: [1, 2, 3, 4, [5, 8]] #父对象不变,子对象变
list3: [1, 2, 3, 4, [5, 6]] #父子对象都不改变
有用教育(上海荣隆教育科技有限公司) 详情加微信13472725250咨询
是一家专业培养资深IT工程师并让学员高薪就业、专注于Linux运维、人工智能的培训机构,公司总部设立在上海,为IT人员提供到岗即用式的实战培训。
有用IT教育培训致力于为国内、国际大中型互联网企业培养市场紧缺的系统工程师、高级架构师、人工智能工程师等高级技术人才、为学员提供定制化IT职业规划方案与咨询服务的培训机构。坚持秉承“为IT人员提供到岗即用式的实战培训”的理念,有用教育以其专业主义精神投入到IT职业教育的领域前沿,不断为学员提供实用有效、创新卓越的知识技能,让学员在实战中进行学习探索、在实战中获得核心竞争力、在实战中实现职业与人生理想。
我们是一支快速成长的高素质创业团队,团队成员均毕业于北京大学、复旦大学、交通大学、日本早稻田大学、MIT、英国帝国理工等全国重点高校。讲师队伍均有大型全球500强企业多年工作经验,理论与实战经验丰富。无论是零基础入门课程,还是高级进阶课程,都能够带给学员定制化的学习体验。有用教育目前提供的课程包括linux系统运维课程,以及就业辅导课程。未来我们将提供更为广泛的IT培训,以及更为高效的就业对接。
“公司在IT培训方面教学质量优秀、教学理念先进、教学方法独特,十分注重理论+实战相结合,全部为名师手把手的带领“课堂即实战式”教学。其中入学测评、直播答疑、布置作业、阶段考试、毕业考试、1v1批改深入广大学员的内心。
公司以“为IT人员提供到岗即用式的实战培训”为使命,坚持“实战培训,到岗即用”,系统传授与时俱进的IT实战技能,提升IT从业人员职业竞争力,为企业输送到岗即用型IT人才。
python深拷贝_python 深拷贝与浅拷贝的区别相关推荐
- python默认深拷贝_python深拷贝和浅拷贝的区别
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,[& ...
- python 深拷贝_Python之类的浅拷贝与深拷贝
大家都知道Python是一个动态语言,那么它在语法上,与诸如C++之类的静态语言肯定是有所区别的.对于C++的浅拷贝与深拷贝笔者已经很熟悉了,然后一直以为Python也理应如此,结果发现还是存在一定区 ...
- python默认深拷贝_Python 深拷贝与浅拷贝
首先分享Python里面的数据类型 1.不可变类型:Number(数字).String(字符串).Tuple(元组). 不可变数据类型在第一次声明赋值的时候, 会在内存中开辟一块空间, 用来存放这个变 ...
- python 深拷贝_python 深拷贝
深拷贝是将对象全拷贝,包括嵌套对象 def deepcopy(cls): if isinstance(cls, dict): dct = {} for k, v in cls.items(): dct ...
- python重写_python 重载和重写的区别
蛊毒传说 重载和重写,这是两个新概念,是两个令我们容易混淆的概念.方法重载(overloading method)是在一个类里面,方法名字相同,而参数不同.返回类型呢?可以相同也可以不同.方法重写(o ...
- python赋值浅拷贝和深拷贝的区别_python赋值、浅拷贝、深拷贝区别
在写Python过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<Py ...
- python中深拷贝与浅拷贝的区别
####################python中的数据类型####################### ##########python中的数据类型有6种,分别为:数字类型如int,float ...
- Python基础:对象的深拷贝和浅拷贝的区别
Python基础:对象的深拷贝和浅拷贝的区别 1 变量与对象 2 不可变对象与可变对象 3 直接赋值 4 浅拷贝 5 深拷贝 参考文献 1 变量与对象 对象:内存中存储数据的实体,有明确的类型.在Py ...
- python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
概述 今天主要来看看Python中的浅拷贝和深拷贝内容,这里用一个实例来说明~ 需求: 将一个列表的数据复制到另一个列表中. 思路: 使用列表[:],拿不准可以调用copy模块. 实现方法: #!/u ...
最新文章
- c++ 判断文件夹是否存在,不存在则创建(可建多级目录)
- manage.py命令
- c语言swatch的用法返回,Linux swatch系统监控程序命令详解
- Android中设置组件多进程
- 3D模型在网页上显示
- pdf.js 在线阅读PDF
- b/s模式下的即时通讯,使用ajax框架dwr实现
- firefly如何安装mysql_CentOS7 安装Firefly及测试
- 11、MySQL常见错误代码一览表
- 利用Linux命令行进行文本按行去重并按重复次数排序yes
- java中对date的一些处理以及获取date
- python实现链表的删除_干货||链表的技巧和算法总结
- SQL Server中的计算列概述
- ffdshow 源代码分析 6: 对解码器的dll的封装(libavcodec)
- ThrealLocal原理讲解
- 计算机技术及应用攻略,组策略应用全攻略
- 第五篇:关于MVPArms打包混淆及报错解决
- 《C语言小游戏之贪吃蛇程序代码》
- 北大中文核心期刊目录(2004年版)工业技术类
- NodeJS实现HTTP/HTTPS代理 - 刘春龙的博客
热门文章
- 学生渐进片add如何给_【收藏】为青少年验配渐进多焦点时,如何选择合适ADD?...
- java byte缓存_java-如何使用带byte []键的番石榴缓存?
- vmware给linux增加空间,vmware增加linux硬盘空间
- html做预约人数显示,添加预约用户.html
- Linux中errno的含义
- vue子组件向父组件传递数据
- 查找数组连成环形的和最大的连续子数组
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)...
- ICCV 2021 第二届无人车视觉(AVVision)研讨会征稿
- 当深度学习遇上图: 图神经网络的兴起!