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

如何将值为列表的单个字典转换为对应字典列表

字典转字典列表实现方案

如果你使用的是Python 3.7及以上版本(字典默认保留插入顺序),可以直接用以下一行代码实现需求:

only_dict = {'First': [1, 2], 'Second': [3, 4]}
out_lst = [dict(zip(only_dict.keys(), val_group)) for val_group in zip(*only_dict.values())]

逻辑说明

  • 首先通过zip(*only_dict.values())将原字典中所有值列表的同位置元素打包为元组,示例中会生成(1, 3)、(2, 4)两组值
  • 遍历每组值,和原字典的键通过zip()配对后转换为字典,最终生成目标列表

其他可选实现

如果你已经安装了pandas库,处理大规模数据时可以用更简洁的写法:

import pandas as pd
out_lst = pd.DataFrame(only_dict).to_dict('records')

注意事项

  • 上述方案默认原字典中所有值列表的长度一致,如果存在长度不一致的情况,zip()会自动截断到最短列表的长度
  • 如果你需要保留所有长度的元素,可以用itertools.zip_longest替代zip,通过fillvalue参数指定缺省值:
from itertools import zip_longest
out_lst = [dict(zip(only_dict.keys(), val_group)) for val_group in zip_longest(*only_dict.values(), fillvalue=None)]
  • 如果使用Python 3.7以下版本,字典键不保证有序,建议先显式定义键的顺序再做转换:
keys = ['First', 'Second']
out_lst = [dict(zip(keys, val_group)) for val_group in zip(*[only_dict[k] for k in keys])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:15:04