我有一个包含一长串值的字典树:
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 作为变量名不是一个好主意,因为它们用这些名称遮盖了内置类型。
