python中的深拷貝與淺拷貝

python中的淺拷貝與深拷貝

  • 淺拷貝僅僅複製了容器中元素的地址
>>> L = [1, 2, 3]
>>> M = ['X', L, 'Y']
>>> M
['x', [1, 2, 3], 'L']
>>> L.append(5)
>>> M
['x', [1, 2, 3, 5], 'L']

我們可以看到L的變化會引起M跟着變化,這說明賦值給M的並不是L中的元素的值,而是L中元素的地址,其實可以把地址打印出來,一定是這樣。

  • 深拷貝是真正的複製元素的值給一個新的變量,下面是兩種深拷貝的方法

調用包

>>> from copy import deepcopy
>>> A = [1, 2, 3] 
>>> B = deepcopy(A)
>>> B.append(4)
>>> A
[1, 2, 3]
>>> B
[1, 2, 3, 4]

通過切片

>>> A = [1, 2, 3]
>>> B = A[:]
>>> B.append(4)
>>> A
[1, 2, 3]
>>> B
[1, 2, 3, 4]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章