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下尝试多线程编程
Apr 28 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
Django中Forms的使用代码解析
Feb 10 Python
python实现逐个读取txt字符并修改
Dec 24 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
20行python代码实现人脸识别
May 05 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
elasticsearch python 查询的两种方法
Aug 04 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
python 实现的车牌识别项目
Jan 25 Python
Python如何使用logging为Flask增加logid
Mar 30 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
PHP strtotime函数详解
2009/12/18 PHP
php 归并排序 数组交集
2011/05/10 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
JS合并两个数组的3种方法详解
2019/10/24 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
会计学生自我鉴定
2014/02/06 职场文书
安全施工责任书
2014/08/25 职场文书
营销学习心得体会
2014/09/12 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
Javascript webpack动态import
2022/04/19 Javascript