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

yipeiwu_com7年前Python基础

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

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

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

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

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

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

# coding: utf-8
import copy
dict ={"a":"apple","o":"orange"}
dict1 = dict
dict2 = copy.copy(dict)
dict3 = copy.deepcopy(dict)
print "【听图阁-专注于Python设计】测试结果:"
print dict1
print dict2
print dict3
dict["a"]="watermelon"
print dict1
print dict2
print dict3

运行结果:

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

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

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字典操作技巧汇总》、《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

Python实现备份文件实例

本文实例讲述了Python实现备份文件的方法,是一个非常实用的技巧。分享给大家供大家参考。具体方法如下: 该实例主要实现读取一个任务文件, 根据指定的任务参数自动备份. 任务文件的格式:...

matplotlib在python上绘制3D散点图实例详解

matplotlib在python上绘制3D散点图实例详解

大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a ba...

python列表推导式入门学习解析

这篇文章主要介绍了python列表推导式入门学习解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.什么是推导式 推导式是从一个...

python集合比较(交集,并集,差集)方法详解

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), differe...

python如何实现excel数据添加到mongodb

利用pymongo包进行数据库的连接,使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据。由于编码问题会出现“TypeError: '...