赋值:
a 和 b 都指向同一个对象 两个同时变化
a=[i*2 for i in range(10)]
b=a
b.remove(2)
a.remove(6)
print(a)
结果:
浅拷贝:
b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)
拷贝父对象,不会拷贝对象的内部的子对象
对父对象的改动不会互相牵连
a=[i*2 for i in range(10)]
b=a.copy()
b.remove(2)
a.remove(6)
print(a)
结果:
对子对象的带动会互相牵连
a={1: [1,2,3]}
b=a.copy()
a[1].append(4)
结果:
深拷贝:
b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。
a={1: [1,2,3]}
b=copy.deepcopy(a)
a[1].append(4)
结果:
参考:https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html