向嵌套字典中添加键值对

6

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

以下是一个示例:

mykeys = ['key1', 'key2', 'key3']
mydictionary = dict.fromkeys(mykeys, {})
mydictionary['key1']['subkey1'] = 'value1'
mydictionary

我期望看到以下结果,只有将“subkey1”添加到“key1”字典中:

{'key1': {'subkey1': 'value1'},
 'key2': {},
 'key3': {}}

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

{'key1': {'subkey1': 'value1'},
 'key2': {'subkey1': 'value1'},
 'key3': {'subkey1': 'value1'}}

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

3
你需要将同一个对象作为子字典的值分配给所有主字典键。 - Michael Butscher
你可以尝试使用mydictionary = {k:{} for k in mykeys}代替fromkeys - niraj
1个回答

4

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


2
请添加一些解释。 - Mad Physicist
完美的,谢谢。 - karthik
2
每次由我处理时,它都会覆盖字典 :) - Qas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接