Python中浅拷贝copy与深拷贝deepcopy的简单理解


Posted in Python onOctober 26, 2018

以下是个人对Python深浅拷贝的通俗解释,易于绕开复杂的Python数据结构存储来进行理解!

  1. 高级语言中变量是对内存及其地址的抽象,Python的一切变量都是对象。
  2. 变量的存储采用了引用语义的方式,存储的只是一个变量的值所对应的地址信息。
  3. 变量的每一次初始化(赋值),即将新的内容的地址赋给变量。
  4. 复杂数据结构存储的是各个元素的值得存储位置。
  5. 进行增删改等操作时不改变数据本身的id,改变的各个元素的地址引用。
  6. 改变任何一个拥有相同id的变量时,其他相同id的变量也会相应改变。
  7. copy.copy(object),拷贝的是内嵌套结构的地址引用,当内嵌套结构发生变化时,浅拷贝相应的改变。
  8. copy.deepcopy(object),完全复制与变量相关的数据!跟别的操作不再有关系!

实例:

import copy
li = [4,5]
lts = [1,2,3,li]
lt_copy= copy.copy(lts)
lt_deepcopy = copy.deepcopy(lts)
lts.append(6)
lt_copy.append(7)
print(lts,lt_copy)  #输出[1, 2, 3, [4, 5], 6] [1, 2, 3, [4, 5], 7]
li.append(8)     #内部表格li插入
print(lts,lt_copy,lt_deepcopy)
#输出[1, 2, 3, [4, 5, 8], 6] [1, 2, 3, [4, 5, 8], 7] [1, 2, 3, [4, 5]]
#可以看到当对li操作时,lt_deepcopy不受影响!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
在Python中操作文件之truncate()方法的使用教程
May 25 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
python执行js代码的方法
May 13 Python
Python Django获取URL中的数据详解
Nov 01 Python
Python分割指定页数的pdf文件方法
Oct 26 #Python
python 将json数据提取转化为txt的方法
Oct 26 #Python
python读取TXT每行,并存到LIST中的方法
Oct 26 #Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 #Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 #Python
python 处理string到hex脚本的方法
Oct 26 #Python
python3 unicode列表转换为中文的实例
Oct 26 #Python
You might like
学习php开源项目的源码指南
2014/12/21 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
require.js中的define函数详解
2017/07/10 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
python制作小说爬虫实录
2017/08/14 Python
Python 面试中 8 个必考问题
2018/11/16 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
python实现发送邮件
2021/03/02 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
住房公积金接收函
2014/01/09 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
活动总结模板大全
2015/05/11 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书