【问题标题】:Getting values from a nested dictionary with recursion使用递归从嵌套字典中获取值
【发布时间】:2022-06-23 01:07:28
【问题描述】:
def get_values(d):
    values = []
    for v in d.values():
        if isinstance(v, dict):
            get_values(v)
        else:
            values.append(v)
    return values


a = {4: 1, 6: 2, 7: {8: 3, 9: 4, 5: {10: 5}, 2: 6, 6: {2: 7, 1: 8}}}

print(get_values(a))

上面的代码旨在打印字典中的所有值,但我对递归不是很有信心,它只给我 [1,2] 作为输出。有人可以修改它以提供 [1,2,3,4,5,6,7,8] 并解释它是如何完成的吗?

【问题讨论】:

    标签: python-3.x dictionary recursion


    【解决方案1】:

    您还需要将来自对get_values 的递归调用中的所有值添加到列表中,否则您将丢弃递归调用所做的所有工作。

    def get_values(d):
        values = []
        for v in d.values():
            if isinstance(v, dict):
                values.extend(get_values(v))
            else:
                values.append(v)
        return values
    

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      相关资源
      最近更新 更多