Python的深拷貝 淺拷貝

2022-08-24 23:06:13 字數 690 閱讀 2097

淺拷貝的特點:

公用乙個值;

這兩個變數的記憶體位址一樣;

對其中乙個變數的值改變,另外乙個變數的值也會改變;

例如:>>> a = [11,22,33,44]

>>> b =a

>>> id(a)

>>> 4327773384

>>> id(b)

>>> 4327773384

>>> a

>>>[11,22,33,44,55]

>>>b

>>>[11,22,33,44,55]

定義:乙個變數對另外乙個變數的值拷貝。

深拷貝的特點:

兩個變數的記憶體位址不同;

兩個變數各有自己的值,且互不影響;

對其任意乙個變數的值的改變不會影響另外乙個

>>> import copy

>>> a=[11,22,33]

>>> b=copy.deepcopy(a)

>>> a

[11, 22, 33]

>>> b

[11, 22, 33]

>>> id(a)

>>> id(b)

>>> a

[11, 22, 33, 44]

>>> b

[11, 22, 33]

>>>

**:

python 淺拷貝 深拷貝

直接賦值 其實就是物件的引用 別名 淺拷貝 copy 拷貝父物件,不會拷貝物件的內部的子物件。深拷貝 deepcopy copy 模組的 deepcopy 方法,完全拷貝了父物件及其子物件。usr bin python import copy a 1,2,3,4,a b 原始物件 b a 賦值,傳物...

python深拷貝 淺拷貝

在python中,物件賦值實際上是物件的引用。當建立乙個物件,然後把它賦給另乙個變數的時候,python並沒有拷貝這個物件,而只是拷貝了這個物件的引用 一般有三種方法,alist 1,2,3,a b 1 直接賦值,傳遞物件的引用而已,原始列表改變,被賦值的b也會做相同的改變 alist 1,2,3,...

python 深拷貝 淺拷貝

淺拷貝是對於乙個物件的頂層拷貝 通俗的理解是 拷貝了引用,並沒有拷貝內容 深拷貝是對於乙個物件所有層次的拷貝 遞迴 拷貝字典 值相當於鍵的引用 所以copy.copy 為淺拷貝 淺拷貝對不可變型別和可變型別的copy不同 copy.copy對於可變型別,會進行淺拷貝 copy.copy對於不可變型別...