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

如何将Python嵌套列表转换为字典列表,首子列表作为各字典的键

解决方法

Python 中可以直接用zip()函数将表头和每行的值一一映射,结合列表推导式即可快速生成目标字典列表。

完整实现代码

a = [['PORT', 'NAME', 'STATUS', 'VLAN', 'DUPLEX', 'SPEED', 'TYPE', 'FC_MODE'], ['Gi1/0/1', 'S1-P1-01 Cisco_Roo', 'connected', '248', 'a-full', 'a-1000', '10/100/1000BaseTX', ''], ['Gi1/0/2', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', ''], ['Gi1/0/3', '', 'notconnect', '121', 'auto', 'auto', '10/100/1000BaseTX', '']]

# 提取第一行作为字典的键列表
keys = a[0]
# 遍历后续所有行,和表头配对生成字典
result = [dict(zip(keys, row)) for row in a[1:]]

print(result)

输出结果

[
    {'PORT': 'Gi1/0/1', 'NAME': 'S1-P1-01 Cisco_Roo', 'STATUS': 'connected', 'VLAN': '248', 'DUPLEX': 'a-full', 'SPEED': 'a-1000', 'TYPE': '10/100/1000BaseTX', 'FC_MODE': ''},
    {'PORT': 'Gi1/0/2', 'NAME': '', 'STATUS': 'notconnect', 'VLAN': '121', 'DUPLEX': 'auto', 'SPEED': 'auto', 'TYPE': '10/100/1000BaseTX', 'FC_MODE': ''},
    {'PORT': 'Gi1/0/3', 'NAME': '', 'STATUS': 'notconnect', 'VLAN': '121', 'DUPLEX': 'auto', 'SPEED': 'auto', 'TYPE': '10/100/1000BaseTX', 'FC_MODE': ''}
]

逻辑说明

  • zip(keys, row)会将表头列表和当前行的列表按位置一一配对,返回可迭代的元组对序列
  • dict()可直接将配对的元组序列转换为键值对字典
  • 列表推导式遍历a[1:]中所有数据行,批量生成所有字典组成最终列表

注意事项

如果实际数据存在行长度和表头长度不一致的情况,可先按需补全空值再执行转换,避免出现字段遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:27:03