python 深拷貝 淺拷貝

2021-10-08 00:15:37 字數 2392 閱讀 8665

1.b=a只是引用傳遞 

2. copy.copy:產生了新的引用,但是淺複製,指向的是同乙個物件

3 c=[a,b]只是傳遞了引用

4 .copy.deepcopy:如果列表裡面的都是引用型別,則是深拷貝

如果列表中的元素是基本型別,則deepcopy也相當於淺拷貝

5.理解下面的原因

6.元組本身是不可變型別,對於淺拷貝則相當於不拷貝

若是深拷貝,則要看元組內的元素是可變型別還是不可變型別,若是不可變型別則相當於不拷貝,如果是可變型別,則是深拷貝

如果copy.copy和copy.deepcopy對乙個全部都是不可變型別的資料進行拷貝,則結果相同,都是引用指向

如果拷貝的是乙個擁有不可變型別的

深拷貝如果是元素內容有乙個可變的,則都是新建物件,如果都是不可變的,則不建立物件 

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對於不可變型別...