python中copy和deepcopy有什麼區別? python中copy和deepcopy有什麼區別?

python中copy和deepcopy有什麼區別?

copy僅拷貝對象本身,而不對中的子對象進行拷貝,故對子對象進行修改也會隨着修改。

deepcopy是真正意義上的複製,即從新開闢一片空間。我們經常說的複製實際上就是deepcopy.

上代碼看看

import copy
a=[1,2,3,[2,3],4]
b=a
c=copy.copy(a)
d=copy.deepcopy(a)
a.append(9)
print(a)   # [1, 2, 3, [2, 3], 4, 9]
print(b)  #  [1, 2, 3, [2, 3], 4, 9]

print(c)  #  [1, 2, 3, [2, 3], 4]
print(d)  #  [1, 2, 3, [2, 3], 4]

可以看出來,copy和deepcopy出來後,它跟原來沒有什麼關係了。但是看後面,如果對裏面的元素元素對象進行操作的話,看看什麼樣?

a[3][0]=8
print(a)  #  [1, 2, 3, [8, 3], 4, 9]
print(b)  #  [1, 2, 3, [8, 3], 4, 9]
print(c)  #  [1, 2, 3, [8, 3], 4]
print(d)  #  [1, 2, 3, [2, 3], 4]

可以看出來,deepycopy出來後,裏面的元素的對象,修改後,跟原來沒有關係了,但是copy還是沒有對裏面的對象進行復制,它只是複製而已,copy也叫淺拷貝。

後記

學習python或者量化的,可以看看我網易雲課堂的視頻,搜索51bitquant可以找到教程。個人微信:bitquant51

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章