我有一个保存的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
不是重复。这是关于设置而不是获取嵌套字典的问题。
deepGet
函数并将弹出的键设置为结果字典中的值。 - Klaus D.