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 深拷贝与浅拷贝的区别相关推荐

  1. python赋值浅拷贝和深拷贝的区别_python赋值、浅拷贝、深拷贝区别

    在写Python过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<Py ...

  2. python中raise和raise e区别_python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  3. python import from区别_python import 与 from .... import ...区别-阿里云开发者社区

    在python用import或者from...import来导入相应的模块. 模块其实就一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候, 直接把相应的模块导入到我们的程序 ...

  4. python编辑器和python解释器的区别_python编译器和解释器的区别

    高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器. 编译型语言通常的执行过程是:源代码--预处理器--编译器--目标代码--链接器--可执 ...

  5. python str和repr的区别_python str与repr的区别

    尽管str(),repr()和"运算在特性和功能方面都非常相似,事实上repr()和"做的是完全一样的事情,它们返回的是一个对象的"官方"字符串表示,也就是说绝 ...

  6. python raise和except区别_python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  7. python版本之间的区别_Python各版本之间的区别

    Python各版本之间的区别 发布时间:2020-06-17 14:22:08 来源:亿速云 阅读:161 作者:鸽子 Python发展至今有哪些版本和各版本的区别是: 一.系统区别: 1.Downl ...

  8. python中is和 的区别_Python中is和==的区别详解

    Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么. 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识) ...

  9. python元组和列表的联系_Python元组和列表的区别

    元组和列表同属序列类型,且都可以按照特定顺序存放一组数据,数据类型不受限制,只要是 Python 支持的数据类型就可以.那么,元组和列表有哪些区别呢? 元组和列表最大的区别就是,列表中的元素可以进行任 ...

  10. python中is和 的区别_Python中is和==的区别

    """ is和 ==的区别 """ a = 'abc' b = 'abc' print("都是字符串-a is b--" ...

最新文章

  1. 【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建
  2. BCH专属“谷歌地图”凸显BCH魅力
  3. 妙用SQL Server聚合函数和子查询迭代求和
  4. 推荐八款.Net优秀的开源CMS 内容管理系统
  5. 使用 acme.sh 获取网站证书并配置https访问
  6. 浅谈C语言的基本数据类型
  7. 高级数据结构与算法 | LFU缓存机制(Least Frequently Used)
  8. 如何通过 C# 比较两幅图片的相似度?
  9. .net 日期总结,用于业务时间查询
  10. 摘:多线程和异步的区别
  11. 【Spark】Spark Class is not registered joins UnsafeHashedRelation kryo
  12. linux根目录数量限制,windows,linux文件夹下文件上限最大个数
  13. CentOS安装Etcd
  14. 《简明 Python 教程》笔记-----面向对象及系统相关
  15. 蓝桥杯---2012--比酒量(暴力)
  16. 科蓝ichat泡分机器人 官网
  17. 技巧:Eclipse阿里代码规范插件
  18. lcd驱动芯片测试软件,LCD Driver IC测试方法及其挑战
  19. android timepicker分割线颜色,Android TimePicker 的使用
  20. gmail 设置 smtp_如何在Linux上使用Gmail或SMTP设置电子邮件警报

热门文章

  1. Unity 之圆环算法
  2. WinForm中显示韩语,韩文
  3. Solaris做desktop必装的10个软件
  4. join原理、join算法
  5. java线程状态、新建状态、运行状态、阻塞状态、等待阻塞、同步阻塞、其他阻塞、死亡状态
  6. loss 加权_Multi-Similarity Loss使用通用对加权进行深度度量学习-CVPR2019
  7. 【Spring-tx】ProxyTransactionManagementConfiguration类
  8. SpringMVC全局异常处理机制常见问题及底层实现分析
  9. MySQL中的时间函数
  10. 在java开发中关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String