假设我有一个常规的“dict-of-dicts”,如下所示:
d = {}
d['a'] = {}
d['a']['b'] = 3
我当然可以使用 d['a']['b']
访问该元素。
在我的例子中,我有一个递归应用程序,其中我将当前状态保存为键列表。所以我会
my_key = ['a', 'b']
如何使用 my_key
访问值 3?当然,问题在于 my_key
可以任意长(深)。
我意识到我可以编写另一个遍历函数,但似乎应该有一种直接的方法来实现。有什么想法吗?
最佳答案
您可以使用 reduce
以不同的键迭代索引每一层 dict:
>>> from functools import reduce #only necessary in 3.X
>>> d = {}
>>> d['a'] = {} #I'm assuming this is what you meant to type
>>> d['a']['b'] = 3
>>> keys = ("a", "b")
>>> reduce(dict.get, keys, d)
3
关于Python - 从键列表访问分层字典元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209587/