将键值对添加到嵌套字典中

Sam*_*Sam 6 python dictionary python-3.x

我在向嵌套字典添加键值对时遇到一些问题。新的对似乎被添加到外部字典中的所有条目,而不仅仅是我想要的嵌套字典。

这是一个例子:

mykeys = ['key1', 'key2', 'key3']
mydictionary = dict.fromkeys(mykeys, {})
mydictionary['key1']['subkey1'] = 'value1'
mydictionary
Run Code Online (Sandbox Code Playgroud)

我期望看到以下内容,其中“subkey1”仅添加到“key1”字典中:

{'key1': {'subkey1': 'value1'},
 'key2': {},
 'key3': {}}
Run Code Online (Sandbox Code Playgroud)

相反,它将 subkey1/value1 对添加到外部字典的每个元素中:

{'key1': {'subkey1': 'value1'},
 'key2': {'subkey1': 'value1'},
 'key3': {'subkey1': 'value1'}}
Run Code Online (Sandbox Code Playgroud)

为什么会出现这种情况?我该如何重写代码来修复这个错误?

小智 4

mydictionary['key1'] = {'subkey1': 'value1'}

  • 请添加一些解释。 (2认同)
  • 对我来说,它每次都会覆盖字典:( (2认同)