2
我有Python的字典键保存列表:深套Python字典
['level_one', 'level_two', 'test']
这是一本字典的键:
mydict = {
'level_one' : {
'level_two' : {
'test' : "Hello World"
}
}
}
通常我可以设置test
键像这个:
mydict['level_one']['level_two']['test'] = "Hello StackOverflow"
不幸的是,这个列表/字典是即时生成的,我不知道它有多深。有没有可能通过键列表更新字典键而不使用大括号?
我只能够反映此功能,获取字符串:
def deepGet(sourceDict, *keys):
return reduce(lambda d, k: d.get(k) if d else None, keys, sourceDict)
> deepGet(mydict, *['level_one', 'level_two', 'test'])
>> Hello World
不是重复。这是关于设置,而不是获取嵌套字典。
'pop()'列表的最后一项,使用你的'deepGet'并在结果'dict'上设置弹出键。 –
@KlausD。听起来像一个想法!我会试一下 :-) –