使用列表值作为后续键访问字典值

keys = ['prop1', 'prop2', 'prop3']

dict = { prop1: { prop2: { prop3: True } } }

如何True使用列表从字典中获取值?


没有任何成功


val = reduce((lambda a, b: dict[b]), keys)

更新:


keys并且dict可以任意长,但将始终具有匹配的属性/键。


Cats萌萌
浏览 122回答 2
2回答

慕容3067478

使用循环:>>> a = ['prop1', 'prop2', 'prop3'] >>> d = {'prop1': {'prop2': {'prop3': True}}}>>> result = d>>> for k in a: ...     result = result[k] ...>>> resultTrue使用函数式风格:>>> from functools import reduce>>> reduce(dict.get, a, d)True

幕布斯6054654

作为操作。重新表述了他的问题,我做了一个更新:实际上,您根本不需要键来获得“真”。您可以使用递归函数在不知道键的情况下很好地完成它。d = { 'prop1': { 'prop2': { 'prop3': True } } }def d_c(dc):    if isinstance(list(dc.values())[0], dict):        return d_c(list(dc.values())[0])    return list(dc.values())[0]结果:True
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python