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

标签 python dictionary reference

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

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

最佳答案

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

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

dict2 = dict(dict1)

dict2 = dict1.copy()

关于python - 如何复制字典并仅编辑副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53040705/

相关文章:

python - QTableView 上的 PySide 委托(delegate),带有文本和勾号

python - 导出动画 ffmpeg 时出错 - Matplotlib

python - 双 View SFM 的相机姿势不正确

python - 如何构建采用最近插入的记录的 SQLAlchemy 关系?

javascript - through2-map 的目的

c# - 未处理C#NullReferenceException-未将对象引用设置为对象的实例

Swift JSON to Dictionary<String : Any>. Then cast "Any"as NSMutableArray

java - HashMap,其中键的顺序很重要

c++ - 如何将引用类型转换为值类型?

javascript - 从成员函数对对象所做的更改不会持续存在。范围/引用问题?