首页 > 其他 > 详细

=、浅拷贝、深拷贝小结

时间:2017-11-05 22:56:30      阅读:208      评论:0      收藏:0      [点我收藏+]
>>> import copy
// =  指向同一个内存空间,操作的是同一个对象

>>> t1 = {a:1, b:2}

>>> t2 = t1

>>> id(t1)

42559696

>>> id(t2)

42559696

// 浅拷贝,不同内存空间操作不同对象,只做一层创建

>>> t1 = {a:1, b:2}

>>> t2 = copy.copy(t1)

>>> t2

{a: 1, b: 2}

>>> t1

{a: 1, b: 2}

>>> t2.pop(b)

2

>>> t2

{a: 1}

>>> t1

{a: 1, b: 2}

// 但是子元素为可变类型时,它是引用类似于在子元素上使用 ‘’=‘’

>>> t1 = {a:1, b:2, c:[1,2,3]}

>>> t2 = copy.copy(t1)

>>> t2[c][0] = 4

>>> t2

{a: 1, b: 2, c: [4, 2, 3]}

>>> t1

{a: 1, b: 2, c: [4, 2, 3]}



// 深拷贝:递归的拷贝所有元素,即使子元素使用的是可变类型,深拷贝的结果是完全不相干

>>> t1 = {a:1, b:2, c:[1,2,3]}

>>> t2 = copy.deepcopy(t1)

>>> t2[c][0] = 4

>>> t2

{a: 1, b: 2, c: [4, 2, 3]}

>>> t1

{a: 1, b: 2, c: [1 2, 3]}

 

=、浅拷贝、深拷贝小结

原文:http://www.cnblogs.com/maxiaohei/p/7789058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!