我有几本看起来像这样的词典:
myDict = {
"main": {
"foo": {
"xyz": "lorem",
"abc": "ipsum"
},
"bar": {
"xyz": "dolor",
"abc": "sit"
}
}
}
我如何使用给定的列表检索这些值,例如 ["main", "foo", "xyz"] 或 ["main", "bar", "abc "] 作为导航嵌套字典的键?
所以它会将类似 myDict["main", "foo", "xyz"] 解释为 myDict["main"]["foo"]["xyz"]
请您参考如下方法:
from functools import reduce
def path_lookup(my_dict, path):
return reduce(lambda d, ks: d[ks], path, my_dict)
print(path_lookup(myDict, ["main", "bar", "abc"])) # prints sit
如果您真的希望字典响应您在编辑中指示的元组索引,您可以通过覆盖 __getitem__ 来实现它,但您可能不想这样做。
