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中变量交换的例子
Aug 25 Python
python使用chardet判断字符串编码的方法
Mar 13 Python
mac系统安装Python3初体验
Jan 02 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python中的函数作用域
May 07 Python
Python3 log10()函数简单用法
Feb 19 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
Python入门之基础语法详解
May 11 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
php数组添加元素方法小结
2014/12/20 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
React 实现拖拽功能的示例代码
2019/01/06 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
PyQt5每天必学之布局管理
2018/04/19 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python学习之os模块及用法
2020/06/03 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
2014年社区学雷锋活动总结
2014/03/09 职场文书
统计专业自荐书
2014/07/06 职场文书
2015年教师新年寄语
2014/12/08 职场文书
入党积极分子群众意见
2015/06/01 职场文书
矛盾论读书笔记
2015/06/29 职场文书
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android