我觉得这一定是以前问过的,但我一直无法找到我正在寻找的解决方案:
我有一个简单的字典a,其中包含一个键和一个列表。我想复制该词典以供将来使用,但我对 a 所做的任何更改都会影响我的副本 b。:
>>> a
{'kn': [8, 9, 10, 11, 12]}
>>> b = a.copy()
>>> b
{'kn': [8, 9, 10, 11, 12]}
>>> for l in range(len(a['kn'])):
... a['kn'][l] = a['kn'][l] + 10
>>> a
{'kn': [18, 19, 20, 21, 22]}
>>> b
{'kn': [18, 19, 20, 21, 22]}
请您参考如下方法:
那是因为你没有制作字典的深拷贝。
这应该为您指明正确的方向:https://docs.python.org/2/library/copy.html
简而言之,当您copy() 字典时,您只是将指针 复制到字典中的项目。因此,当您更改一个字典中的值时,由于两个字典中的指针相同,因此更改会立即显示在另一个字典中。
通过执行 deepcopy(),您可以将值 从一个字典复制到另一个字典。现在您有两个单独的副本。
