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写的贪吃蛇游戏例子
Jun 16 Python
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
用python找出那些被“标记”的照片
Apr 20 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
ipad上运行python的方法步骤
Oct 12 Python
pycharm的python_stubs问题
Apr 08 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
Python json解析库jsonpath原理及使用示例
Nov 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 Calender(日历)代码分享
2014/01/03 PHP
php二维码生成以及下载实现
2017/09/28 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
js module大战
2019/04/19 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python格式化输出%s和%d
2018/05/07 Python
实例讲解python中的协程
2018/10/08 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python opencv实现证件照换底功能
2019/08/19 Python
softmax及python实现过程解析
2019/09/30 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
浅谈python 类方法/静态方法
2020/09/18 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
企业门卫岗位职责
2013/12/12 职场文书
食堂标语大全
2014/06/11 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
大雁塔英文导游词
2015/02/10 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL