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

如何通过递归获取不同嵌套层级字典中的最内层字典?

递归获取嵌套字典的最内层字典

原代码问题分析

你当前的递归函数存在逻辑缺陷:调用recursion(info[key])时没有接收递归返回的结果,最后返回的store只是当前遍历层级的字典,无法深入到最内层结构。

正确实现方案

以下是能准确获取最内层字典的递归函数:

def get_inner_dict(data):
    # 遍历字典的所有值
    for value in data.values():
        if isinstance(value, dict):
            # 如果当前值是字典,递归进入该字典并返回结果
            return get_inner_dict(value)
    # 当所有值都不是字典时,当前字典即为最内层
    return data

测试验证

用你的示例字典测试:

info = {'k1': {
        'k2': {
            'k3': 'v3',
            'k4': 'v4',
            'k5': 'v5'}
        },
}

print(get_inner_dict(info))
# 输出: {'k3': 'v3', 'k4': 'v4', 'k5': 'v5'}

多分支场景补充

如果你的嵌套字典存在多个字典分支(比如某一层级有多个子字典),可以修改函数返回所有最内层字典的列表:

def get_all_inner_dicts(data):
    inner_dicts = []
    has_child_dict = False
    for value in data.values():
        if isinstance(value, dict):
            has_child_dict = True
            inner_dicts.extend(get_all_inner_dicts(value))
    if not has_child_dict:
        inner_dicts.append(data)
    return inner_dicts

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:45:35