Skip to main content
 首页 » 编程设计

python之使用列表从嵌套字典中获取值

2025年05月04日12开发

我有几本看起来像这样的词典:

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__ 来实现它,但您可能不想这样做。