python 深淺拷貝總結

2021-09-25 23:50:24 字數 633 閱讀 3096

賦值 :=

就類似於兩個標籤貼到同一記憶體位址上,源資料型別改,賦值的型別也改

淺拷貝:

外邊的殼記憶體位址永遠不一樣,他只拷貝了元素第一層的位址,只有 修改 拷貝資料的第一層的時候 源資料不改變,給可變資料型別進行新增的時候源資料會受到影響。(可變資料型別能夠新增和修改,不可變資料型別只能修改)

第二層:可變資料型別新增修改 源資料改變

深拷貝:

開闢乙個容器空間(列表),不可變資料公用,可變資料資料型別(再次開闢乙個新的空間),空間裡的值是不可變的資料(記憶體位址線相等)進行共用的,可變的資料型別(記憶體位址不同)再次開闢空間依次遞迴

其他的小題

data_list = 

data = {}

for i in range(10):

data['user'] = i #鍵是唯一的所以只有user:9,注意這個用的是乙個字典

print(data_list)

data_list =

for i in range(10):

data = {}

data['user'] = i #這裡每次都是建立乙個空字典,不存在鍵衝突情況

print(data_list)

python 深淺拷貝總結

關於deepcopy和copy 1 copy就是淺copy,意思是把物件a的所有內容,找到乙個記憶體空間再存放乙份,再賦值為新的變數。比如 a 1,2,3 from copy import copy cpy a copy a 注意區分 copy和賦值,賦值是簡單的寫了個別名,比如 a 1,2,3 b...

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

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

python 深淺拷貝

建立乙個寬度為3,高度為4的陣列 mylist 0 3 4 0,0,0 0,0,0 0,0,0 0,0,0 但是當操作mylist 0 1 1時,發現整個第二列都被賦值,變成 0,1,0 0,1,0 0,1,0 0,1,0 list n n shallow copies of list concat...