Python字典方法copy()和deepcopy()的区别

时间:2014-06-19 06:27:36   收藏:0   阅读:536
1 from copy import deepcopy  # import deepcopy模块
2 d = {}
3 d[name] = [black, guts] # d = {‘name‘: [‘black‘, ‘guts‘]}
4 c = d.copy() # c = {‘name‘: [‘black‘, ‘guts‘]}
5 dc = deepcopy(d) # dc = {‘name‘: [‘black‘, ‘guts‘]}
6 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 (作者:程序员小王),在此对作者表示感谢。

 

Python字典方法copy()和deepcopy()的区别,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!