You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过动态键列表获取Python嵌套字典的键值?

动态获取嵌套字典中键列表对应的值

假设我们有如下嵌套字典和动态键列表:

d = {
    'a': {
        'b': {
            'c': 'value'
        }
    }
}
keyList = ['a', 'b', 'c']

静态取值可通过d['a']['b']['c']实现,但当键列表长度可变时,有两种Pythonic的实现方式:

方法一:循环遍历(直观易读)

通过遍历键列表,逐层访问嵌套字典:

current = d
for key in keyList:
    current = current[key]
print(current)  # 输出: value

如果需要处理键不存在的异常情况,可添加捕获逻辑:

current = d
try:
    for key in keyList:
        current = current[key]
except KeyError:
    current = None  # 可根据需求设置其他默认值
print(current)

方法二:使用functools.reduce(简洁优雅)

利用reduce函数将键列表的每个元素依次作用于字典,一行代码完成取值:

from functools import reduce

value = reduce(lambda obj, key: obj[key], keyList, d)
print(value)  # 输出: value

若要避免键不存在时抛出异常,可结合dict.get设置兜底逻辑:

from functools import reduce

value = reduce(lambda obj, key: obj.get(key, {}), keyList, d)
# 若中间键不存在,最终返回空字典,可按需判断处理
print(value if value != {} else None)

内容的提问来源于stack exchange,提问作者BigQuestionsNoAnswers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:06:13