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

如何将值为列表的字典转换为元素一一对应的字典列表?

将字典中对应位置的元素组合为列表字典

给定一个字典,其中每个键对应的值都是长度相同的列表,需要把每个位置上的元素按键组合成单个字典,最终将所有这些字典存入一个新列表。

示例输入

my_dict = {'Folder': ['2021-03-12_020000', '2021-03-12_020000', '2021-03-12_020000'],
           'Filename': ['2021-03-12_020000-frame79.jpg', '2021-03-12_020000-frame1.jpg', '2021-03-12_020000-frame39.jpg'],  
           'Labeler': ['Labeler 2', 'Labeler 2', 'Labeler 1']}

期望输出

final_list = [{'Folder':'2021-03-12_020000', 'Filename': '2021-03-12_020000-frame79.jpg', 'Labeler': 'Labeler 2'},
            {'Folder':'2021-03-12_020000', 'Filename': '2021-03-12_020000-frame1.jpg', 'Labeler': 'Labeler 2'},
            {'Folder':'2021-03-12_020000', 'Filename': '2021-03-12_020000-frame39.jpg', 'Labeler': 'Labeler 1'}]

解决方案

可以用zip()函数把各个键对应的列表按位置打包,再结合列表推导式生成目标列表:

final_list = [dict(zip(my_dict, values)) for values in zip(*my_dict.values())]

说明

  • zip(*my_dict.values())会把每个键对应的列表按索引位置打包,比如第一个元组包含三个列表的第一个元素,第二个元组包含三个列表的第二个元素,以此类推。
  • 对每个打包后的元组,dict(zip(my_dict.keys(), 元组))会把键和对应位置的元素组合成字典。
  • 列表推导式遍历所有打包后的元组,生成最终的字典列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:35:18