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中实现php的var_dump函数功能
Jan 21 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
python保存数据到本地文件的方法
Jun 23 Python
Python 读写文件的操作代码
Sep 20 Python
python 输出所有大小写字母的方法
Jan 02 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
python如何停止递归
Sep 09 Python
python输入中文的实例方法
Sep 14 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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
对javascript和select部件的结合运用
2006/10/09 PHP
php中计算时间差的几种方法
2009/12/31 PHP
php的sso单点登录实现方法
2015/01/08 PHP
PHP经典面试题集锦
2015/03/19 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript面象对象设计
2008/04/28 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
Python中的推导式使用详解
2015/06/03 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python应用文件读取与登录注册功能
2019/09/23 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Python Json数据文件操作原理解析
2020/05/09 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
英文道歉信
2015/01/20 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
话题作文之自信作文
2019/11/15 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Vue如何实现组件间通信
2021/05/15 Vue.js
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
python 远程执行命令的详细代码
2022/02/15 Python