from copy import deepcopy # import deepcopy模块
d = {}
d['name'] = ['black', 'guts'] # d = {'name': ['black', 'guts']}
c = d.copy() # c = {'name': ['black', 'guts']}
dc = deepcopy(d) # dc = {'name': ['black', 'guts']}
d['name'].append('white')
在这之后,d,c,dc 的值分别如下:
>>> d
{'name': ['black', 'guts', 'white']}
>>> c
{'name': ['black', 'guts', 'white']}
>>> dc
{'name': ['black', 'guts']}
故 c = d.copy()作为浅复制,只是新建了 c 指向 d,本质上并没有拷贝出一个新的dict,c 和 d 引用同一个dict,无论改变 c 或 d,两者都会改变。而 dc = deepcopy(d) 则创建了一个新的字典赋给了 dc。
本文参考了http://www.cnblogs.com/chengxuyuanxiaowang/p/3784789.html (作者:程序员小王),在此对作者表示感谢。