[python]字典的直接赋值、浅拷贝和深拷贝解析
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