python学习笔记-Day02 -第三部分 浅拷贝和深拷贝
2015-11-03 01:53
501 查看
了解前提:
python中变量在第一次赋值时,自动声明,在变量被创建的时候,解释器会根据语法和右侧操作数来决定对象类型
引用计数 :就是记录每一个对象有多少个引用
引用计数器 一个内部跟踪变量
######################################################
简单的说:
浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝
######################################################
如果希望复制一个容器对象,以及它里面的所有元素(包含元素的子元素),使用copy.deepcopy,这个方法会消耗一些时间和空间,不过,如果你需要完全复制,这是唯一的方法.
###################################################
本文出自 “Will的笔记” 博客,请务必保留此出处http://timesnotes.blog.51cto.com/1079212/1709009
python中变量在第一次赋值时,自动声明,在变量被创建的时候,解释器会根据语法和右侧操作数来决定对象类型
引用计数 :就是记录每一个对象有多少个引用
引用计数器 一个内部跟踪变量
######################################################
简单的说:
浅拷贝就是对引用的拷贝,所谓深拷贝就是对对象的资源的拷贝
######################################################
如果希望复制一个容器对象,以及它里面的所有元素(包含元素的子元素),使用copy.deepcopy,这个方法会消耗一些时间和空间,不过,如果你需要完全复制,这是唯一的方法.
###################################################
"""浅拷贝""" import copy aa = [1,2,3] bb = copy.copy(aa) print id(aa) #11533088 print id(bb) #12014776 bb[0] =100 print bb #[100, 2, 3] print aa #[1,2,3] #由于数字不可变,修改的时候会替换旧的对象 print [id(x) for x in bb] #[10247196, 10246388, 10246376] print [id(y) for y in aa] #[10246400, 10246388, 10246376]
”“”深拷贝“”“ deepLis = copy.deepcopy(lis) deepLis[1].append('foo') print deepLis #[['a'], [1, 2,'foo'], ['z', 23]] print lis #[['a'], [1, 2], ['z', 23]]
本文出自 “Will的笔记” 博客,请务必保留此出处http://timesnotes.blog.51cto.com/1079212/1709009
相关文章推荐
- python学习笔记-Day02 -第二部分
- python学习笔记-Day02 -第一部分
- python-打开网页
- Python爬虫 -- 登陆新浪微博
- python中format的实例
- python问题1:ERROR 10053错误
- Python 遍历二叉树
- 用Python进行SQLite数据库操作
- python 分割文件数据
- win64+python3.4+Numpy.whl的安装
- python培训Day2 随笔
- leetcode之Palindrome Number
- Python中定义字符串和修改字符串的原理
- python学习 过程
- 迭代器基础
- python 时间字符串与日期转化
- python----脚本文件的头部写法。
- Spark(Hive) SQL中UDF的使用(Python)
- python之路-DAY2
- 快速入门:十分钟学会Python