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

Python中如何利用嵌套列表创建指定结构的嵌套字典?

正确生成嵌套字典的实现方法

给定三个列表:

A = ['a','b','c']
B = [[1,2,3],[4,5,6]]
C = ['A','B']

需要生成如下结构的嵌套字典:

{'A':{'a':1, 'b':2, 'c':3}, 'B':{'a':4, 'b':5, 'c':6}}

如果你的字典推导式仅保留最后一次循环结果(输出如下),说明推导式逻辑存在问题:

{'A': {'c': 3},
 'B': {'c': 6}}

正确实现方式

方法一:字典推导式(简洁写法)

利用zip将C的键与B的子列表一一配对,再通过dict(zip(A, values))直接生成完整的内层字典:

result = {key: dict(zip(A, values)) for key, values in zip(C, B)}

方法二:普通循环(直观易懂)

如果对推导式逻辑不熟悉,用双层循环逐步构建嵌套字典:

result = {}
# 遍历C的键和对应的B子列表
for key, values in zip(C, B):
    inner_dict = {}
    # 遍历A的元素和对应子列表的值,构建内层字典
    for k, v in zip(A, values):
        inner_dict[k] = v
    result[key] = inner_dict

错误原因说明

之前的推导式错误在于,内层循环时每次生成仅含单个键值对的字典并覆盖之前的内容,而非一次性将A和对应子列表的所有元素配对成完整的内层字典。通过dict(zip(A, values))可以直接把两组对应元素打包成完整的内层字典,避免覆盖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:43:22