python中的深淺拷貝

2021-08-28 11:34:14 字數 849 閱讀 2301

# 深淺拷貝

* 定義

1. 淺拷貝:

拷貝了最外層的物件,內部的元素只拷貝了乙個引用

2. 深拷貝:

外層的物件和內部的元素都拷貝(賦值)了一遍

* 術語:

1. 變數:是乙個系統表的元素,擁有指向物件的連線空間

2. 物件:會在記憶體中占用一塊空間

3. 引用:是自動形成的從變數到物件的指標(首位址,引用)

4. 型別:物件型別(str,float,int)

5. 不可變物件:int,float,bool,tuple,str,frozenset

6. 可變型別:list,set,dict

* 應用範圍:

1. 切片(分片)

l=[1,2,3]

l2=l[:]  # 淺拷貝

2. copy()

l2=l.copy()  # 淺拷貝

3. 深拷貝

資料備份(資料容災)

山(電磁波,輻射,電子風暴,戰爭破壞)

### 對於不可變型別的深淺拷貝:

### 可變型別的深淺拷貝:

* 總結

1. 深拷貝都是對源物件的賦值(深層物件),占用的記憶體空間不同

2. 淺拷貝:對最外層物件進行拷貝,占用的記憶體空間相同

3. 不可變型別物件,對於深淺拷貝沒有影響,最終的位址都是一樣

4. 可變型別:

=:拷貝位址

list.copy():淺拷貝

分片:淺拷貝

import copy

copy.deepcopy():深拷貝

5. 淺拷貝:節省資源和記憶體空間

6. 深拷貝:資料拷貝更加安全(容災特性)

python中深淺拷貝

先弄懂下面概念 變數 引用 物件 可變物件,不可變物件 切片 拷貝 淺拷貝,深拷貝 變數是乙個系統表的元素,擁有指向物件的鏈結的空間 物件是被分配的一塊記憶體,儲存其所代表的值 引用是自動形成的從變數到物件的指標 在python中不可變物件知 一旦建立就不可修改物件,包括字元創,元組,數字 在pyt...

Python 中的深淺拷貝

python 中的物件之間賦值時,時按照引用傳遞,如果需要拷貝物件 需要使用標準庫中的copy模組 1.copy.copy淺拷貝 只拷貝父物件,不會拷貝物件的內部的子物件 2.copy.deepcopy深拷貝 拷貝物件及其子物件 示例 encoding utf 8 import copy a 1,2...

Python中的深淺拷貝

1.在了解深淺拷貝之前,我們先明確python中的可變與不可變 int str float tuple bool list set dict2.淺拷貝copy.copy lst0 0 1,1,2,3 lst5 lst0.copy 0,1 1,2,3 lst0 lst5 true lst0 2 1 4...