【问题标题】:Extract a simple one from a nested dictionary and sort out elements based on a condition从嵌套字典中提取一个简单的字典并根据条件对元素进行排序
【发布时间】:2022-07-28 00:48:55
【问题描述】:

给出以下字典:

dict_nested = {"A":{"C":100, "D":{"E":100, "F":100}}, "B":200}

结果应如下所示:

dict_result = {"C":100, "E":100, "F":100, "B":200}
  • 结果应该是 1 个仅包含键值对的字典,其值来自 Integer 类型而不是 dict。
  • 应保持顺序(我不是指按键的字母顺序)

【问题讨论】:

  • 创建一个递归函数,给定字典迭代元素。如果值是数字,则将键/值对附加到结果中,否则以递归方式调用该函数并传递当前键的字典值

标签: python dictionary nested


【解决方案1】:

就像 Sembei 所说,这种情况需要递归:

dict_nested = {"A":{"C":100, "D":{"E":100, "F":100}}, "B":200}

def extract_dict(d1, d2):
    for k, v in d1.items():
        if isinstance(v, dict):
            extract_dict(v, d2)
        else:
            d2.update({k: v})

dict_result = {}
extract_dict(dict_nested, dict_result)
print(dict_result)

输出

{'C': 100, 'E': 100, 'F': 100, 'B': 200}

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多