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

如何在Python中将含元组键的嵌套字典新增层级

字典元组键转嵌套层级解决方案

问题描述

现有嵌套字典dic1,其第二层键为元组,结构如下:

dic1={'a': {('a', 'b'): ['c','d'],
    ('a', 'c'): ['d','f','g'],
    ('c', 'k'): ['f','h'],
    ('c', 'j'): [], 
    ('h', 'z'): ['w']
}}

需要将第二层的元组键拆分为新的嵌套层级,转换为如下目标结构:

{
    'a':
    {
        'a':
        {
            'b': ['c', 'd'],
            'c': ['d', 'f', 'g']
        },
        'c':
        {
            'k': ['f', 'h'],
            'j': []
        },
        'h':
        {
            'z': ['w']
        }
    }
}

尝试以下代码未得到预期结果:

dic2 = {k:[i[0] for i in v] for k,v in dic1.items()}

解决方案

通过嵌套遍历拆分元组键,逐步构建新的嵌套结构,代码如下:

dic2 = {}
for top_key, inner_dict in dic1.items():
    dic2[top_key] = {}
    for tuple_key, value in inner_dict.items():
        first_key, second_key = tuple_key
        if first_key not in dic2[top_key]:
            dic2[top_key][first_key] = {}
        dic2[top_key][first_key][second_key] = value

代码说明

  • 遍历原始字典的顶层键与对应内层字典,初始化新字典的顶层结构;
  • 拆分每个内层元组键为两个子键,作为新的嵌套层级;
  • 若第一层子键未在新字典中存在,先创建空字典占位;
  • 将原列表值映射到新的嵌套路径下。

运行上述代码后,即可得到目标嵌套字典结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:40:33