### 深拷貝
```python3
import copy
l = [3.1,3.2]
l1 = [1,2,l]
l2 = copy.deepcopy() #深拷貝
l[0] = 3.14
print(l1)#[1,2[3.14,3.2]]
print(l2)#[1,2,[3.1,3.2]]
```### 淺拷貝
```python3
l = [3.1,3.2]
l1 = [1,2,l]
l2 = l1.copy() #淺拷貝
l[0] = 3.14
print(l1) #[1,2,[3.14,3.2]]
print(l2) #[1,2,[3.14,3.2]]
```---
### 區別,理解
>淺拷貝的優勢:因為沒有執行複製,所以節約記憶體空間,
>淺拷貝的缺點:如果被copy的物件是乙個可變的物件。則會出現資料不可控的衝突
>深拷貝的優勢:因為執行複製了容器全部的關係樹,所以會消耗一部分記憶體空間,同時也會消耗一部分系統資源
>通常只對可變物件進行複製,不可變物件通常只需要淺拷貝
關於深拷貝和淺拷貝
以nsstring與nsmutablestring舉例 nsstring str1 xfj nsmutablestring str2 str1 mutablecopy nslog str1,str2 nslog p p str1,str2 輸出結果 xfj xfj123 0x102701068 0x...
C 關於深拷貝和淺拷貝
在c 中,資料型別有值型別和引用型別 值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。對於值型別的,拷貝是全拷貝,則是拷貝出另乙個物件,兩個物件的記憶體位址是不同的,乙個物件的屬性修改後不影響另乙個物件...
列表的深拷貝與淺拷貝
lst0 0,1,3,3 lst1 0,1,3,3 lst3 0,1,2,3,11,12,13,14 print lst0 lst1 true 比較兩個列表的值 print lst0 is lst1 false 比較兩個列表的id lst1 lst0 lst0 lst1同時指向同乙個列表,所以改變任...