Skip to main content
 首页 » 编程设计

python之从列表转到字典键

2025年05月04日14pengyingh

我有一个包含一长串值的字典树:

dict = {"a":{"b":{"c":"Hello World!"}}} 

如果我想打印出“Hello World!”从字典内部,我必须这样做:

print(dict["a"]["b"]["c"]) 

但是,我希望能够使用列表遍历字典。理论上,它是这样工作的:

dict = {"a":{"b":{"c":"Hello World!"}}} 
list = ["a", "b", "c"] 
print(dict[list]) 

Python 会打印“Hello World!”,但这似乎不是它的工作原理。任何想法都会有很大帮助!

请您参考如下方法:

您可以使用 reduce(在 Python 3 中您需要使用 from functools import reduce 导入)。

reduce(lambda a, b: a[b], key_list, my_dict) 

像这样:

my_dict = {"a":{"b":{"c":"Hello World!"}}} 
key_list = ["a", "b", "c"] 
 
>>> reduce(lambda a, b: a[b], key_list, my_dict) 
'Hello World!' 

如果任何键不存在(或者如果字典嵌套太“浅”以至于字典没有键那么多),将引发异常。

请注意,我重命名了您的变量。使用 list 和 dict 作为变量名不是一个好主意,因为它们用这些名称遮盖了内置类型。