Python中字典的浅拷贝与深拷贝用法实例分析


Posted in Python onJanuary 02, 2018

本文实例讲述了Python中字典的浅拷贝与深拷贝用法。分享给大家供大家参考,具体如下:

最近发现的一个很值得记录的东西就是python字典的浅拷贝问题

首先,明确一下什么是浅拷贝,什么是深拷贝:

简单的来说就是,在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存

也就是说,在浅拷贝情况下,不同引用指向的是同一块内存,改其中一个引用,那么其他引用也会跟着改变

应用到python 的字典复制过程:

# coding: utf-8
import copy
dict ={"a":"apple","o":"orange"}
dict1 = dict
dict2 = copy.copy(dict)
dict3 = copy.deepcopy(dict)
print "三水点靠木测试结果:"
print dict1
print dict2
print dict3
dict["a"]="watermelon"
print dict1
print dict2
print dict3

运行结果:

Python中字典的浅拷贝与深拷贝用法实例分析

说明直接赋值是一种浅拷贝方式,而后两种是深拷贝方式

有的地方说copy.copy是浅拷贝,经我的验证它也是深拷贝,不知道是不是python的版本问题

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python根据经纬度计算距离示例
Feb 16 Python
python实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python中无限元素列表的实现方法
Aug 18 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
使用python远程操作linux过程解析
Dec 04 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 Python
Python PyQt5整理介绍
Apr 01 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
如何通过python检查文件是否被占用
Dec 18 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 #Python
Python实现进程同步和通信的方法
Jan 02 #Python
mac系统安装Python3初体验
Jan 02 #Python
Python中static相关知识小结
Jan 02 #Python
python tensorflow基于cnn实现手写数字识别
Jan 01 #Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 #Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 #Python
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python 判断网络连通的实现方法
2018/04/22 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Django框架视图介绍与使用详解
2019/07/18 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
员工培训心得体会
2013/12/30 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
北京爱情故事观后感
2015/06/12 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python