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之关于类的初步认识
Oct 11 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
利用nohup来开启python文件的方法
Jan 14 Python
python使用thrift教程的方法示例
Mar 21 Python
详解python中的线程与线程池
May 10 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Python_查看sqlite3表结构,查询语句的示例代码
Jul 17 Python
Pandas的数据过滤实现
Jan 15 Python
python+opencv实现目标跟踪过程
Jun 21 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP异常处理浅析
2015/05/12 PHP
php生成动态验证码gif图片
2015/10/19 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
JS 继承实例分析
2008/11/04 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python中的自省(反射)详解
2015/06/02 Python
Python线性方程组求解运算示例
2018/01/17 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
高中生职业规划范文
2014/03/09 职场文书
高中家长寄语
2014/04/02 职场文书
服务口号大全
2014/06/11 职场文书
管理工程专业求职信
2014/08/10 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
SQL注入详解及防范方法
2021/12/06 MySQL
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python