码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-06-19 06:27:36      阅读:536      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   color   

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

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

标签:style   class   blog   code   http   color   

原文地址:http://www.cnblogs.com/blackguts/p/3789546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!