Ina*_*uma 1 python dictionary python-3.x
我有一个包含很多值的字典树:
dict = {"a":{"b":{"c":"Hello World!"}}}
Run Code Online (Sandbox Code Playgroud)
如果我想打印出"Hello World!" 从词典里面,我必须这样做:
print(dict["a"]["b"]["c"])
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够通过列表浏览字典.从理论上讲,这就是它的工作原理:
dict = {"a":{"b":{"c":"Hello World!"}}}
list = ["a", "b", "c"]
print(dict[list])
Run Code Online (Sandbox Code Playgroud)
而python会打印"Hello World!",但这似乎并不是它的工作方式.任何想法都会有很大的帮助!
您可以使用reduce(在Python 3中需要导入from functools import reduce).
reduce(lambda a, b: a[b], key_list, my_dict)
Run Code Online (Sandbox Code Playgroud)
像这样:
my_dict = {"a":{"b":{"c":"Hello World!"}}}
key_list = ["a", "b", "c"]
>>> reduce(lambda a, b: a[b], key_list, my_dict)
'Hello World!'
Run Code Online (Sandbox Code Playgroud)
如果任何键不存在(或者如果字典嵌套太"浅",那么将引发异常,因此没有像键一样多的键).
请注意,我重命名了您的变量.使用list和dict作为变量名称并不是一个好主意,因为它们会使用这些名称隐藏内置类型.
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |