首页 > 编程语言 > 详细

python-之-深浅拷贝二(元组)

时间:2019-04-21 11:06:52      阅读:130      评论:0      收藏:0      [点我收藏+]

元组比较特殊

 

1、----元组本身为不可变类型

import copy


v1 = (1, 2, 3, 4)
v2 = copy.copy(v1)
print(id(v1), id(v2))
v3 = copy.deepcopy(v1)
print(id(v1), id(v3))

输出:
31450280 31450280
31450280 31450280

小结:元组本身是不可变类型,就像str、int、boor一样,所在在深浅拷贝时,它们的内存地址是一样的。

2、----当元组中嵌套可变类型时:
v1 = (1, 2, 3, [1, 2, 3], 4)
import copy

v2 = copy.copy(v1)
print(id(v1), id(v2))
v3 = copy.deepcopy(v1)
print(id(v1), id(v3))


输出:

4023752 4023752
4023752 35885304

小结:当元组中嵌套可变类型,深拷贝就会把元且重新生成一份。

 

 

总结:

在不可变类型中,深浅拷贝时,都不会再开辟内存空间,用的都是同一内存地址。
在嵌套可变类型时,深浅拷贝就会重新开辟一块内存空间,不可变的值还是指向原来的值的地址。

不同的就是,在嵌套可变类型中:
浅拷贝: 只拷贝第一层

深拷贝: 拷贝所有的嵌套可变类型


python-之-深浅拷贝二(元组)

原文:https://www.cnblogs.com/pingxie/p/10744166.html

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