Python浅拷贝与深拷贝用法实例


Posted in Python onMay 09, 2015

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

>>> person=['name',['savings',100]]
>>> hubby=person[:]
>>> wifey=list(person)
>>> [id(x) for x in person,hubby,wifey]
[3074051788L, 3074061740L, 3074061996L]
>>> [id(y) for x in person,hubby,wifey for y in x]
[3074319552L,3073979916L,3074319552L,3073979916L,3074319552L,3073979916L]
>>> hubby[0]='joe'
>>> wifey[0]='jane'
(['joe',['savings',100]],['jane',['savings',100]],['name',['savings',100]])
>>> hubby[1][1]=70
>>> hubby,wifey,person
(['joe',['savings',70]],['jane',['savings',70]],['name',['savings',70]])

浅拷贝,创造了新的对象,但是它的对象引用确和被拷贝对象一致。

如果被拷贝对象的构成元素是不可变类型,则拷贝对象对这个元素的改变,实际上是创造一个新的对象。

如果被拷贝对象的构成元素是可变类型,则拷贝对象对这个元素的改变,实际上是在原对象的内存空间上修改这个内存空间里面的内容。

这样,才有hubby[1][1]=70会导致wifey,person相应值的改变。

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

Python 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
python实现将内容分行输出
Nov 05 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
selenium+python自动化测试之页面元素定位
Jan 23 Python
Python Pandas数据中对时间的操作
Jul 30 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
Python基础之条件语句详解
Jun 16 Python
九步学会Python装饰器
May 09 #Python
Python类属性与实例属性用法分析
May 09 #Python
python回调函数用法实例分析
May 09 #Python
python类和函数中使用静态变量的方法
May 09 #Python
Python实用日期时间处理方法汇总
May 09 #Python
python fabric使用笔记
May 09 #Python
Python字符串详细介绍
May 09 #Python
You might like
php $_SERVER当前完整url的写法
2009/11/12 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
javascript 打印页面代码
2009/03/24 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
Puppeteer使用示例详解
2019/06/20 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python3中确保枚举值代码分析
2020/12/02 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
2014年体育工作总结
2014/11/24 职场文书
男方婚礼答谢词
2015/01/20 职场文书
李强为自己工作观后感
2015/06/11 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript