如何复制字典并仅编辑副本

新手上路,请多包涵

我设置 dict2 = dict1 。当我编辑 dict2 时,原来的 dict1 也会发生变化。为什么?

 >>> dict1 = {"key1": "value1", "key2": "value2"}
>>> dict2 = dict1
>>> dict2["key2"] = "WHY?!"
>>> dict1
{'key2': 'WHY?!', 'key1': 'value1'}

原文由 MadSc13ntist 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 333
1 个回答

Python 从不 隐式复制对象。当您设置 dict2 = dict1 时,您使它们引用完全相同的 dict 对象,因此当您对其进行变异时,对它的所有引用都会继续引用处于当前状态的对象。

如果你想复制字典(这种情况很少见),你必须明确地使用

dict2 = dict(dict1)

要么

dict2 = dict1.copy()

原文由 Mike Graham 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题