keys = ['prop1', 'prop2', 'prop3']dict = { prop1: { prop2: { prop3: True } } }如何True使用列表從字典中獲取值?沒有任何成功val = reduce((lambda a, b: dict[b]), keys)更新:keys并且dict可以任意長,但將始終具有匹配的屬性/鍵。
2 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
使用循環:
>>> a = ['prop1', 'prop2', 'prop3']
>>> d = {'prop1': {'prop2': {'prop3': True}}}
>>> result = d
>>> for k in a:
... result = result[k]
...
>>> result
True
使用函數式風格:
>>> from functools import reduce
>>> reduce(dict.get, a, d)
True

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
作為操作。重新表述了他的問題,我做了一個更新:
實際上,您根本不需要鍵來獲得“真”。您可以使用遞歸函數在不知道鍵的情況下很好地完成它。
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
添加回答
舉報
0/150
提交
取消