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

Python如何使用递归函数按指定格式打印嵌套字典内容

问题原因

你的代码存在两个核心问题:

  • 缩进错误:字典初始化、函数调用的代码全部写在了print_meals函数定义内部,这部分代码只有调用函数时才会执行,还会和函数参数重名导致逻辑混乱。
  • 递归逻辑错误:遍历到值为字典的键值对时,你直接进入递归打印内层内容,外层的lunch、dinner键完全没有打印就进入了下一层,自然只会输出内层的键值对。

修复后代码

# 递归打印餐单函数
def print_meals(meal_plan):
    for key, value in meal_plan.items():
        if isinstance(value, dict):
            # 先打印当前层的键和对应的字典内容,匹配你要的输出格式
            print(f"{key} : {value}")
            # 如果需要继续打印内层字典的键值对,再打开下面这行注释
            # print_meals(value)
        else:
            print(f"{key} : {value}")


# 以下代码要放在函数定义外面,不要缩进
# 创建空餐单字典
meal_plan = {}

# 定义每餐的子字典
lunch = {"sandwich": 2, "chips": 1, "drink": 1}
dinner = {"ribs": 6, "mac_cheese": 1, "roll": 1, "pie": 1}

# 组装嵌套字典
meal_plan["lunch"] = lunch 
meal_plan["dinner"] = dinner 

# 调用函数
print_meals(meal_plan)

运行输出

lunch : {'sandwich': 2, 'chips': 1, 'drink': 1}
dinner : {'ribs': 6, 'mac_cheese': 1, 'roll': 1, 'pie': 1}

和你要求的输出格式完全一致。如果后续嵌套层级变多,只要保留递归调用的逻辑就能自动适配更深的嵌套结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:27:03