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

求助:如何将Python字典列表转换为键对应值列表的字典

Python字典列表转置为键值列表字典

问题描述

输入字典列表:

a = [{'Name': 'dhaya', 'Place': 'pune', 'Designation': 'fleetEngineer'},{'Name': 'rishi', 'Place': 'maharastra', 'Designation': 'Sr.Manager'}]

期望输出:

{"Name":["dhaya","rishi"],"Place":["pune","maharastra"],"Designation":["fleetEngineer","Sr.Manager"]}

解法1:手动遍历构建

适用于所有字典键一致的场景,逻辑直观:

a = [{'Name': 'dhaya', 'Place': 'pune', 'Designation': 'fleetEngineer'},{'Name': 'rishi', 'Place': 'maharastra', 'Designation': 'Sr.Manager'}]

result = {}
# 提取第一个字典的所有键(假设所有字典键相同)
for key in a[0].keys():
    # 遍历每个字典,收集当前键对应的值
    result[key] = [item[key] for item in a]

print(result)

解法2:用zip()和字典推导式

利用Python内置函数简化代码,效率较高:

a = [{'Name': 'dhaya', 'Place': 'pune', 'Designation': 'fleetEngineer'},{'Name': 'rishi', 'Place': 'maharastra', 'Designation': 'Sr.Manager'}]

# 打包所有字典的对应值,再与键配对
keys = a[0].keys()
result = {k: list(v) for k, v in zip(keys, zip(*(d.values() for d in a)))}

print(result)

解法3:collections.defaultdict处理键不一致场景

如果列表中字典的键可能不统一,这个方法会自动为每个键创建列表并收集值:

from collections import defaultdict

a = [{'Name': 'dhaya', 'Place': 'pune', 'Designation': 'fleetEngineer'},{'Name': 'rishi', 'Place': 'maharastra', 'Designation': 'Sr.Manager'}]

result = defaultdict(list)
for item in a:
    for key, val in item.items():
        result[key].append(val)

# 可选:转换为普通字典
result = dict(result)
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:15:32