Python 列表淺拷貝與深拷貝
阿新 • • 發佈:2017-11-12
deep log es2017 .com com python 列表 imp http bsp
淺拷貝 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]]
內存中的指向是這樣的,如下圖:
Python 列表淺拷貝與深拷貝