python基礎高階之深淺拷貝

2021-09-26 22:40:33 字數 624 閱讀 9169

深拷貝與淺拷貝的區別

淺複製shadow copy —–

1,只拷貝物件自身,僅僅是指向被複製的記憶體位址;

2,內層列表的引用沒有拷貝,即淺拷貝拷貝的是第一層引用;

3,如果原位址中物件被改變了,那麼淺複製出來的物件也會相應改變。

深複製deep copy —-

1,開闢了一塊新的記憶體位址用於存放複製的物件;

2,深拷貝會拷貝列表裡面的所有引用。

3,修改a裡面的列表的引用的時候,不會影響b;

淺拷貝對資料型別的不同:

1,淺拷貝copy.copy對不可變型別(數字、字串、元組)和可變型別(列表和字典)的copy不同:

對變進行淺拷貝;

對不變不拷貝,僅僅是指向。

2,深拷貝deep copy不分型別,全部拷貝。

(面試題)除了深拷貝和淺拷貝,你還知道哪些拷貝的方式?

1、對於列表:可以有切片的方式進行淺拷貝:

b = a[:] # 淺拷貝

2、對於列表和字典:可以用python的內建方法進行淺拷貝(列表和字典獨有的方法)

copy()方法,例如:

列表名.copy()

字典名.copy()

python基礎之深淺拷貝

深淺拷貝 對於字串 str 數字 int 布林型別 bool 等型別深淺拷貝都是開闢新記憶體 對於列表 list 集合 set 字典 dict 深淺拷貝可變型別都一樣,如 1,2,3 對於列表 list 集合 set 字典 dict 存在巢狀的深淺拷貝不一樣,如 1,2,3,4,5,6 淺拷貝只拷貝...

Python高階 深淺拷貝

python高階 深淺拷貝 深淺拷貝 1 深拷貝 深拷貝就是將所有的都進行拷貝,包括內層,深拷貝屬於遞迴拷貝,很是耗費記憶體。2 淺拷貝 淺拷貝就是只拷貝最外面一層,子物件會受到原始資料的影響,但是前拷貝節約記憶體,浪費少。3 物件的拷貝 引用傳遞不是拷貝,引用傳遞是位址的拷貝。4 拷貝格式 匯入模...

python高階 深淺拷貝

is與的區別 在講is和這兩種運算子區別之前,首先要知道python中物件包含的三個基本要素,分別是 id 身份標識 type 資料型別 和value 值 is和 都是對物件進行比較判斷作用的,但對物件比較判斷的內容並不相同。下面來看看具體區別在哪。比較操作符和is同一性運算子區別 是python標...