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

【python】dict的拷贝问题

时间:2015-12-25 11:24:20      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

部分来源:http://blog.sina.com.cn/s/blog_5c6760940100bmg5.html

 

①直接赋值 ---- 结果是不同名的引用

对新字典的修改完全作用在了原来的字典上,只是引用的关系

>>> c = {‘a‘:1,‘b‘:2}
>>> d = c
>>> d[‘e‘]=3
>>> d
{‘a‘: 1, ‘b‘: 2, ‘e‘: 3}
>>> c
{‘a‘: 1, ‘b‘: 2, ‘e‘: 3}
>>> f = dict()
>>> f = d
>>> f["k"]=4
>>> f
{‘a‘: 1, ‘k‘: 4, ‘b‘: 2, ‘e‘: 3}
>>> c
{‘a‘: 1, ‘k‘: 4, ‘b‘: 2, ‘e‘: 3}

②使用copy()函数 --- 浅拷贝。 

如果一个字典中有引用类型,如list,复制只会复制其引用而不会复制其值:

>>> d = {‘names‘: [‘bob‘, ‘sam‘]}
>>> y = d.copy()
>>> y[‘names‘][0] = ‘jack‘
>>> y
{‘names‘: [‘jack‘, ‘sam‘]}
>>> d
{‘names‘: [‘jack‘, ‘sam‘]}

③深拷贝 deepcopy

>>> from copy import deepcopy
>>> d = {‘names‘: [‘bob‘, ‘sam‘]}
>>> y = deepcopy(d)
>>> y[‘names‘][0] = ‘jack‘
>>> d
{‘names‘: [‘bob‘, ‘sam‘]}
>>> y
{‘names‘: [‘jack‘, ‘sam‘]}

 

【python】dict的拷贝问题

标签:

原文地址:http://www.cnblogs.com/dplearning/p/5075250.html

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