为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2021-08-11 21:56:13
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


查看完整回答
反对 回复 2021-08-11
?
幕布斯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


查看完整回答
反对 回复 2021-08-11
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信