首页 > 解决方案 > 添加到复杂的嵌套 python 字典

问题描述

考虑我有以下字典。

d ={'parent1': {'2': {'3': {}}},'parent2':{'child1':{},'child2':{}}}

每个键都具有字典格式的值。

现在我想将键值对“u”添加到上述字典 d 中。

u = {"4":"2"} # dictionary that I want to add as a key to a child.

我正在尝试将它添加为 'parent2':{'child1':{},'child2':{}}` 的“child1”。u = {"4":"2"} 是键的值。您可以选择任何键名。

所以我的最终结果看起来像

d ={'parent1': {'2': {'3': {}}},'parent2':{'child1':{'newkey':{'4':'2'}}, 'child2':{}}}

我们已经知道的是我们必须在其中添加新信息(键:值),并且以列表的形式提供。
路径 = ['parent2','child1']

此路径表示我们必须添加新键:值对的路径。在这种情况下,它可以被解读为,我们必须进入“parent2”,我们有一个名为“child1”的孩子,在这个孩子中,我们必须将添加的新信息存储为 key:value 对。注意:路径不是硬编码的,它可以随时更改。感谢您是否可以在 python 中为我提供解决方案,或者您是否可以提供逻辑。谢谢

标签: pythonpython-3.x

解决方案


请原谅,但鉴于以下情况:

d ={'parent1': {'2': {'3': {}}},'parent2':{'child1':{},'child2':{}}}
u = {"4":"2"} # dictionary that I want to add as a key to a child.
path = ['parent2','child1']

然后命令

d[path[0]][path[1]]['newkey'] = u 

产量:

{'parent1': {'2': {'3': {}}},
 'parent2': {'child1': {'newkey': {'4': '2'}}, 'child2': {}}}

这正是你所要求的。
请解释为什么这不是正确的答案


推荐阅读