通俗理解python列表的深淺拷貝與區分

2021-10-13 15:19:03 字數 491 閱讀 3085

淺拷貝是只拷貝內容,位址沒有拷貝。

比如laoba_home = [1,2]位址是8888,我讓laoba_house = a.copy()

這裡a和b實際上指向的是同乙個位址,a和b只是同乙個房子的不同稱呼,對b修改a當然也會跟著變。

深拷貝是拷貝內容,也「拷貝」位址

比如laoba_home = [1,2]位址是8888,我讓xiaoba_home = copy.deepcopy(laoba_home ),這裡就是照著laoba_home再蓋一所房子叫xiaoba_home。你修改xiaoba_home的內容laoba_home 自然不會變,他倆本質上就不是乙個東西。

拷貝位址也不能在別人家位址上蓋房子吧,所以我深拷貝是也生成乙個新位址所以b的位址就變的跟a不一樣,位址不一樣,你修改b的內容a自然也不會變。

淺拷貝的方法有很多,切片、列表生成、for迴圈、copy()等等。深拷貝的方法主要是copy.deepcopy()、列表相加等等。方法可以看這個並不全,可以參考。

Python中列表的深淺拷貝

copy lst py物件三要素 比較運算子 is 身份運算子 小資料池 列表的淺拷貝 列表的深拷貝 py物件三要素 idtype value 比較運算子 通過value進行判斷 a 257 b 257 a b true is 身份運算子 通過id進行判斷 a 257 b 257 id a id b...

python列表中的深淺copy

列表中的賦值和平常的賦值是不一樣的,看下面的 in 1 a 1in 2 b a in 3 a out 3 1in 4 b out 4 1in 5 id a out 5 4452948992in 6 id b out 6 4452948992in 7 id 1 out 7 4452948992in 8...

Python 列表深淺複製詳解

列表有個 copy 方法,意思是複製乙個相同的列表 實現淺複製的方法 import copy names 小明 小紅 小黑 小黃 小白 names1 copy.copy names names2 names names3 list names 深複製的方法 import copy names 小明 ...