前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python dictionary字典的复制方法

Python dictionary字典的复制方法

作者头像
用户7886150
修改2021-01-25 10:29:33
8390
修改2021-01-25 10:29:33
举报
文章被收录于专栏:bit哲学院

参考链接: Python字典copy()

dict2 = dict1 #第一种你想到的复制方法 

>>> dict1 = {'a': 1, 'b':2, 'c':[1, 2]}

>>> dict2 = dict1

>>> dict1['a'] = 2

>>> dict2

{'a': 2, 'b': 2, 'c': [1, 2]}

原因:设想{‘a’: 1, ‘b’:2, ‘c’:[1, 2]}是一个对象(类型是词典的对象),dict2 = dict1,不过是这个对象的不同名字而已,因此并不是复制。 

dict2 = dict1.copy or dict2.update(dict1) #第一种你查到的方法 

两种方法效果相同,以copy为例: 

>>> dict1 = {'a': 1, 'b':2, 'c':[1, 2]}

>>> dict2 = dict1.copy()

>>> dict1['a'] = 2

>>> dict2

{'a': 1, 'b': 2, 'c': [1, 2]}

看到这里,小心子雀跃,但是还留一个坑,继续往下看: 

>>> dict1['c'].append(3)

>>> dict2

{'a': 1, 'b': 2, 'c': [1, 2, 3]}

呵呵哒,copy方法对多层的字典的复制表示无能为力,这个地方很容易掉坑呢。 

dict2 = copy.deepcopy(dict3) #千呼万唤始出来的方法 

最后是放大招的时候了,站在python自带copy模块的肩膀上: 

>>> dict1 = {'a': 1, 'b':2, 'c':[1, 2]}

>>> import copy

>>> dict2 = copy.deepcopy(dict1)

>>> dict1['a'] = 2

>>> dict1['c'].append(3)

>>> dict2

{'a': 1, 'b': 2, 'c': [1, 2]}

要是你不信,可以再多给dict1嵌套几层~~真理绝对是经得起考验的 

参考 google&baidu

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档