您的位置:首页 > 编程语言 > Python开发

python学习笔记-Day02 -第三部分 浅拷贝和深拷贝

2015-11-03 01:53 501 查看
了解前提:
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: