当我在处理另一本字典时,一本字典会更改值

One dictionary changes value while I'm working on another dictionary

我正在为字典苦苦挣扎

dic1 = {"A":"a","B":"b","C":"c"}
dic2 = dic1
dic2["D"]="d"
print(dic1)

输出:

{'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}

有人能解释一下为什么 dic1 还附加了带有“d”值的“D”键吗?我该怎么做才能避免这个问题?我真的希望 dic1 不改变值

发生这种情况是因为您正在使用参考资料。 This guide 是对 Python 参考文献的很好解释。

要避免此问题,请尝试以下操作:

dic1 = {"A":"a","B":"b","C":"c"}
dic2 = dic1.copy()

这是 Python 个对象的基础 属性。当您天真地将一个已存在的对象分配给一个新对象时,新对象实际上指向第一个对象。 使用 dict2 = dict1,您实际上指向同一个对象。这意味着您在 dict2 中所做的每项更改都会影响原始对象。 如果您想复制字典,请尝试 dict2 = dict(dict1).