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

扁平化嵌套字典时如何按深层优先规则覆盖重复键的取值

实现思路
  • 采用深度优先遍历递归处理嵌套字典,仅收集值为非字典类型的键值对,遍历过程中内层键值对会覆盖外层同名键,自动保证最内层取值优先级最高。
  • 深拷贝原字典完整保留原有嵌套结构,再用收集到的键值对覆盖顶层同名键即可得到目标结果。
完整实现代码
import copy

def collect_inner_kv(d: dict) -> dict:
    flat_res = {}
    for k, v in d.items():
        if isinstance(v, dict):
            # 递归收集子字典内的键值对,内层优先级更高
            inner_res = collect_inner_kv(v)
            flat_res.update(inner_res)
        else:
            flat_res[k] = v
    return flat_res

def process_nested_dict(input_dict: dict) -> dict:
    # 收集所有内层优先的扁平键值对
    flat_kv = collect_inner_kv(input_dict)
    # 深拷贝原字典,完整保留原有嵌套结构,同时避免修改原字典
    output_dict = copy.deepcopy(input_dict)
    # 覆盖顶层同名键的值
    output_dict.update(flat_kv)
    return output_dict
测试验证

示例输入

input_dict = {
    'abc': 1,
    'foo': 2,
    'cba': {'abc': 3, 'baz': {
        'foo': 4
    }}
}

运行代码

print(process_nested_dict(input_dict))

输出结果

{'abc': 3, 'foo': 4, 'cba': {'abc': 3, 'baz': {'foo': 4}}}

完全符合预期输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:36:03