天天看點

57 - 淺拷貝(copy)和深拷貝(deepcopy)

請描述一下淺拷貝(copy)和深拷貝(deepcopy)的差別,請用代碼舉例說明如何使用copy和deepcopy

'''
copy: 隻複制深層對象的引用
deepcopy: 複制深層對象的本身
'''
import copy
a = [1, 2, 3, 4, ['a', 'b']]

b = copy.copy(a) # 淺拷貝
c = copy.deepcopy(a) # 深拷貝
print(b)
print(c)      
[1, 2, 3, 4, ['a', 'b']]
[1, 2, 3, 4, ['a', 'b']]      
a.append(5)
print(a)
print(b)
print(c)      
[1, 2, 3, 4, ['a', 'b'], 5]
[1, 2, 3, 4, ['a', 'b']]
[1, 2, 3, 4, ['a', 'b']]      
a[4][0] = 'x'
print(a)
print(b)
print(c)      
[1, 2, 3, 4, ['x', 'b'], 5]
[1, 2, 3, 4, ['x', 'b']]
[1, 2, 3, 4, ['a', 'b']]