1、賦值引用
b = a: a 和 b 都指向同一個對象。
2、淺拷貝
b = a.copy(): a 和 b父對象是一個獨立的對象,但他們的子對象還是指向統一對象(是引用)。
3、深拷貝
b = copy.deepcopy(a): 完全拷貝了父對象及其子對象,a 和 b 的父對象及其子對象,兩者都是完全獨立的。
實例
import copy c0 = { '1' : 1 , 1 : [1,2]} c1 = c0 c2 = copy.copy(c0) c3 = copy.deepcopy(c0) c4 = c0.copy() #返回一個淺拷貝 c0['1'] = 5 c0['4'] = 1 c0[1].append(4)
print("c0",c0) #c0 {'1': 5, 1: [1, 2, 4], '4': 1} print("c1",c1) #c1 {'1': 5, 1: [1, 2, 4], '4': 1} print("c2",c2) #c2 {'1': 1, 1: [1, 2, 4]} print("c3",c3) #c3 {'1': 1, 1: [1, 2]} print("c4",c4) #c4 {'1': 1, 1: [1, 2, 4]}
參考:
https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html