python中深複製與淺複製的區別

2021-09-24 17:50:31 字數 705 閱讀 5282

python中深複製與淺複製的區別

深複製:即將原物件中所有的值完全複製乙份放在記憶體中(包括可變資料型別物件),即使原物件更改,也不影響其值。

import copy

l1=[1,2,3,[1,2,3]]

l2=copy.deepcopy(l1)

l1

這裡l2是l1的深複製,即,**第四行是在l2的最後乙個元素新增乙個數字4,但是l1的原來的內容沒有發生變化,l1=[1,2,3,[1,2,3]],而l2=[1,2,3,[1,2,3,4]]

淺複製:淺複製和深複製是對應的一種複製(可能不太準確,我是這麼理解的),淺複製列表時,當修改的元素為可變物件(常見的有list,dict,set),修改的操作會修改原列表。

import copy

l1=[1,2,3,[1,2,3]]

l2=copy.copy(l1)

l1

這裡的l2為l1的淺複製(copy),同上,但是這裡與上面的不同的是,l1=[1,2,3,[1,2,3,4]],l2=[[1,2,3,[1,2,3,4]],很明顯l1和l2一樣的。

ps:以前看過乙個**,記錄了這個深複製與淺複製的區別,忘記在哪了,找到了再來更新一下,python新手一枚,如果有寫的不對地方,還請指教,謝謝

python中深複製與淺複製

從定義上來說 1 copy.copy 是淺複製,只拷貝父物件,不會拷貝物件的內部的子物件。2 copy.deepcopy 是深複製,拷貝物件及其子物件。import copy a 1,2,3,4,a b 原始物件 b a 賦值,傳物件的引用 c copy.copy a 物件拷貝,淺拷貝 d copy...

淺複製與深複製

舉個複製 的例子 function clone p,s for var prop in p return s var a var b clone a,b b.hobby 1 reading b.hobby 1 reading c.hobby 1 reading 由上面的例子可以看出,當執行淺複製時,...

深複製與淺複製

2者主要區別 是否為成員變數分配新記憶體空間 複製建構函式有2種 深複製與淺複製 當將乙個物件a複製給另乙個物件b時,系統會呼叫複製建構函式 編譯器預設的複製建構函式是淺拷貝,它將原物件的每乙個成員變數複製到新物件的成員變數中去。因而最後兩個物件的變數均指向相同的資料成員的記憶體位址。當資料成員中沒...