如何复制字典,只编辑副本

问题:

有人可以向我解释一下吗?这对我来说没有任何意义。
我将字典复制到另一个字体,然后编辑第二个字符,两者都被更改。为什么会这样?

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

回答:

Python never隐式复制对象。当您设置dict2 = dict1时,您正在使它们引用相同的精确的dict对象,因此当您突变时,所有对它的引用将保持在当前状态中引用该对象。
如果你想复制dict(这是罕见的),你必须明确地这样做

dict2 = dict(dict1)

要么

dict2 = dict1.copy()

 
 Code问答: codewenda.com
Stackoverflow:How to copy a dictionary and only edit the copy

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 39 = 43