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创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
Python实现快速多线程ping的方法
Jul 15 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
git进行版本控制心得详谈
Dec 10 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
Python模拟登录的多种方法(四种)
Jun 01 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
python科学计算之narray对象用法
Nov 25 Python
python路径的写法及目录的获取方式
Dec 26 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
Python离线安装openpyxl模块的步骤
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模块 Memcached功能多于Memcache
2011/06/14 PHP
php 文本文件的读取效率
2012/02/10 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
PHP实现的日历功能示例
2018/09/01 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
python动态加载变量示例分享
2014/02/17 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
使用K.function()调试keras操作
2020/06/17 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
应届毕业生个人自荐信范文
2013/11/30 职场文书
小学生自我评价范文
2014/01/25 职场文书
酒店节能减排方案
2014/05/26 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
2015年远程教育工作总结
2015/05/20 职场文书