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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
Python入门篇之正则表达式
Oct 20 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
python 项目目录结构设置
Feb 14 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
Python使用jpype模块调用jar包过程解析
Jul 29 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 Python
python opencv通过按键采集图片源码
May 20 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
再说下636单管机
2021/03/02 无线电
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
python求最大值最小值方法总结
2019/06/25 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
药学专业大学生自荐信
2013/09/28 职场文书
经理职责范文
2013/11/08 职场文书
一份创业计划书范文
2014/02/08 职场文书
考核评语大全
2014/04/29 职场文书
2015年教师党员个人总结
2015/11/24 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js