天天看點

python中copy是什麼意思_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