由此可见,在浅复制的情况下修改顶级元素不会影响另一个对象,但是修改内部可变元素时就会同时修改原始对象与新对象了,为了解决这个问题字典提供了一个深复制方法。深复制就是将顶级对象以及子对象的值同时复制给新对象,此时修改任何一个都不会影响另一个。
由于字典也是可变对象,所以copy方法也遵循以上原则。
如果想对字典进行深复制操作,需要引用copy包中的deepcopy方法:
>>> from copy import deepcopy
>>> a = {"Aaron":"0001", "Tom":"0002", "Kate":"0003", "Richard":"0004"}
>>> b = deepcopy(a)
>>> a,b
({'Aaron': '0001', 'Tom': '0002', 'Kate': '0003', 'Richard': '0004'}, {'Aaron':
'0001', 'Tom': '0002', 'Kate': '0003', 'Richard': '0004'})
>>> a["Aaron"]="1"
>>> a,b
({'Aaron': '1', 'Tom': '0002', 'Kate': '0003', 'Richard': '0004'}, {'Aaron': '00
01', 'Tom': '0002', 'Kate': '0003', 'Richard': '0004'})