不知何故,当我尝试为键分配新值时,我的两个相同的嵌套字典(包含字典的字典)通过不同的方式创建。在看起来完全相同的字典中分配的值不同
d = {'a': {'item': None},'b': {'item': None},'c': {'item': None}}
第一词典是手动创建,而第二个是通过该代码创建的:
data = {"item" : None}
keys = ["a","b","c"]
d2 = dict()
for i in range(len(keys)):
d2[keys[i]] = data
这两种给看似相同的字典。
print d
{'a': {'item': None}, 'c': {'item': None}, 'b': {'item': None}}
print d2
{'a': {'item': None}, 'c': {'item': None}, 'b': {'item': None}}
一切似乎不错,到目前为止,但是当我试图改变任何键的值,出现这种情况:
d["a"]["item"] = "1"
d2["a"]["item"] = "1"
print d
{'a': {'item': '1'}, 'c': {'item': None}, 'b': {'item': None}}
print d2
{'a': {'item': '1'}, 'c': {'item': '1'}, 'b': {'item': '1'}}
我用尽了一切我能想到的,我可以”找到任何有类似问题的人。它只是没有意义,为什么它会改变所有三本内部字典的价值?我希望你们能帮忙。
我使用Python 2.7.5