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回调函数的使用方法
Jan 23 Python
Python中使用item()方法遍历字典的例子
Aug 26 Python
详解字典树Trie结构及其Python代码实现
Jun 03 Python
Apache如何部署django项目
May 21 Python
Python面向对象之继承代码详解
Jan 29 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
在Python中,不用while和for循环遍历列表的实例
Feb 20 Python
详解python读取image
Apr 03 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python实现手机推送 代码也就10行左右
Apr 12 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
Laravel中任务调度console使用方法小结
2017/05/07 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
js实现右键菜单功能
2016/11/28 Javascript
VUE重点问题总结
2018/03/19 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python实现飞船大战
2020/04/24 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
什么是Rollback Segment
2013/04/22 面试题
大学生个人简历自我评价
2013/11/16 职场文书
公司投资建议书
2014/05/16 职场文书
如何写求职信
2014/05/24 职场文书
作风年建设汇报材料
2014/08/14 职场文书
英语辞职信范文
2015/02/28 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
运动会表扬稿范文
2015/05/05 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技