淺拷貝 shallow copy 和深拷貝 deep copy
list.copy() 淺拷貝:復制此列表(只復制一層,不會復制深層對象) 等同於 L[:]
舉例:
淺拷貝:
a = [1.1, 2.2] # a = [1.1, 2.2]
b = [1, 2, a] # b = [1, 2, [1.1, 2.2]]
c = b.copy() # c = [1, 2, [1.1, 2,2]]
a[0] = 1.123
b = [1, 2, [1.123, 2.2]]
c = [1, 2, [1.123, 2.2]]
內存中的指向是這樣的,如下圖:
深拷貝:
注:使用deepcoyp前需要導入copy模塊。
Import copy # 導入copy模塊
a = [1.1, 2.2] # a = [1.1, 2.2]
b = [1, 2, a] # b = [1, 2, [1.1, 2.2]]
c = b.deepcopy() # c = [1, 2, [1.1, 2,2]]
a[0] = 1.123
b = [1, 2, [1.123, 2.2]]
c = [1, 2, [1.1, 2.2]]
內存中的指向是這樣的,如下圖: