Python基礎 深淺拷貝

2022-08-15 14:24:13 字數 1409 閱讀 5723

import copy

num = 0

copy_num = copy.copy(num)

print("these are normal copy").center(60,'*')

print(num,id(num))

print(copy_num,id(copy_num))

print("these are deep copy").center(60,'*')

deep_copy_num = copy.deepcopy(num)

print(num,id(num))

print(deep_copy_num,id(deep_copy_num))

*******************these are normal copy********************

(0, 3910788) #原num id

(0, 3910788) #淺拷貝 id

********************these are deep copy*********************

(0, 3910788) #原num id

(0, 3910788) #深拷貝 id

import copy

dic =

copy_dic = copy.copy(dic)

copy_dic["cpu"][0]=30

print("these are normal copy").center(60,'*')

print(dic,id(dic))

print(copy_dic,id(copy_dic))

print("these are deep copy").center(60,'*')

deepcopy_dic = copy.deepcopy(dic)

deepcopy_dic["cpu"][0]=40

print(dic,id(dic))

print(deepcopy_dic,id(deepcopy_dic))

*******************these are normal copy********************

(, 39905584) #原dic id

(, 39906736) #淺拷貝 id

********************these are deep copy*********************

(, 39905584) #原dic id

(, 39907168) #深拷貝 id

由以上可以看出對於 數字 和 字串 而言,賦值、淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址。

對於字典、元祖、列表 而言,進行賦值、淺拷貝和深拷貝時,其記憶體位址的變化是不同的。

賦值,只是建立乙個變數,該變數指向原來記憶體位址。

python基礎 深淺拷貝copy

拷貝是音譯的詞,其實他是從copy這個英文單詞音譯過來的,那什麼是copy?copy其實就是複製乙份,也就是所謂的抄乙份。深淺copy其實就是完全複製乙份,和部分複製乙份的意思。1.賦值運算 1 l1 1,2,3,barry alex 2 l2 l1 34 l1 0 111 5 print l1 1...

python基礎之深淺拷貝

深淺拷貝 對於字串 str 數字 int 布林型別 bool 等型別深淺拷貝都是開闢新記憶體 對於列表 list 集合 set 字典 dict 深淺拷貝可變型別都一樣,如 1,2,3 對於列表 list 集合 set 字典 dict 存在巢狀的深淺拷貝不一樣,如 1,2,3,4,5,6 淺拷貝只拷貝...

python 深淺拷貝案例 python 深淺拷貝

深淺拷貝 對於 數字 和 字串 而言,賦值 淺拷貝和深拷貝無意義,因為其永遠指向同乙個記憶體位址 import copy a1 22255 a2 22255 print id a1 id a2 3428240 3428240 對於字典 元祖 列表 而言,進行賦值 淺拷貝和深拷貝時,其記憶體位址的變化...