在递归循环中附加到列表

新手上路,请多包涵

我正在尝试创建一个递归函数,该函数采用 JSON 字典并将键名为“rate”的任何值存储到列表中。然后我将获取该列表并找到最低值。我的代码现在看起来像这样,但在列表中生成了多个空列表。

 def recurse_keys(df):
    rates = []
    for key, value in df.items():
        if key == 'rate':
            rates.append(value)
        if isinstance(df[key], dict):
            recurse_keys(df[key])

原文由 Casey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 417
2 个回答

您需要合并递归的结果,并将其返回:

 def recurse_keys(df):
    rates = []
    for key, value in df.items():
        if key == 'rate':
            rates.append(value)
        if isinstance(df[key], dict):
            rates += recurse_keys(df[key])
    return rates

原文由 Fabricator 发布,翻译遵循 CC BY-SA 3.0 许可协议

  1. 使用递归调用的结果扩展结果列表
  2. 不要忘记返回你的结果

代码:

 def recurse_keys(df):
    rates = []
    for key, value in df.items():
        if key == 'rate':
            rates.append(value)
        if isinstance(df[key], dict):
            rates += recurse_keys(df[key])
    return rates

原文由 timgeb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题