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使用any判断一个对象是否为空的方法
Nov 19 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
python统计字符的个数代码实例
Feb 07 Python
python代码如何实现余弦相似性计算
Feb 09 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
python如何读取和存储dict()与.json格式文件
Jun 25 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中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
angularJS开发注意事项
2018/05/26 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
Linux的文件类型
2016/07/05 面试题
init进程的作用
2012/04/12 面试题
生产车间主任的个人自我鉴定
2013/10/25 职场文书
应届大学生求职信
2013/12/01 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
剪彩仪式主持词
2014/03/19 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
毕业生找工作求职信
2014/08/05 职场文书
护士2015年终工作总结
2015/04/29 职场文书
初中班主任工作随笔
2015/08/15 职场文书