python-之-深淺拷貝二(元組)


元組比較特殊

 

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

小結:當元組中嵌套可變類型,深拷貝就會把元且重新生成一份。

 

 

總結:

在不可變類型中,深淺拷貝時,都不會再開辟內存空間,用的都是同一內存地址。
在嵌套可變類型時,深淺拷貝就會重新開辟一塊內存空間,不可變的值還是指向原來的值的地址。

不同的就是,在嵌套可變類型中:
淺拷貝: 只拷貝第一層

深拷貝: 拷貝所有的嵌套可變類型



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM