繁体   English   中英

使用 .copy() 创建字典的副本,可以在不更改原始字典的情况下进行编辑

[英]Using .copy() to create a copy of a dictionary that can be editing without altering the original dictionary

所以一个非常基本的例子有效:

dict1 = dict({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})

dict2 = dict1.copy()

dict2['a'] = [9,9,9]

print(dict1['a'])

结果:[1,2,3]

结果表明我能够在不更改原件的情况下编辑副本。

但如果我改为这样做:

dict1 = dict({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})

dict2 = dict1.copy()

dict2['a'][0] = 9

print(dict1['a'])

结果:[9,2,3]

所以看起来 using.copy() 使得复制的字典具有来自原始字典的独立键,但与这些键关联的值仍然是连接的。 有解决方法吗? 谢谢!

您要创建 dict 的深层副本,否则 dict 中引用的对象将在原始副本和浅副本之间共享(因此在第二个示例中更改元素无法按您的意愿工作):

import copy

dict1 = dict({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})

dict2 = copy.deepcopy(dict1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM