如何将多维字典转换为字典列表?
问题:将日期键对应列表的多维字典转换为字典列表
原始输入字典格式:
{ "2023-10-02": [1, 2, 3], "2023-10-03": [7, 8, 9] }
需要转换为以下字典列表格式:
[ {"2023-10-02": 1, "2023-10-03": 7}, {"2023-10-02": 2, "2023-10-03": 8}, {"2023-10-02": 3, "2023-10-03": 9} ]
实现方法
可以用Python的zip()函数结合字典推导式快速完成转换,核心思路是将每个日期对应的列表按位置配对,再逐个生成对应的字典:
# 原始字典 original_dict = { "2023-10-02": [1, 2, 3], "2023-10-03": [7, 8, 9] } # 获取所有日期键和对应的列表集合 keys = original_dict.keys() value_groups = original_dict.values() # 转换为目标格式 result = [dict(zip(keys, group)) for group in zip(*value_groups)] print(result)
代码说明
original_dict.keys()提取所有日期类的键,比如"2023-10-02"、"2023-10-03"original_dict.values()获取每个键对应的数值列表zip(*value_groups)将多个列表按索引位置打包,生成(1,7)、(2,8)、(3,9)这类元组- 外层的列表推导式遍历每个打包后的元组,通过
dict(zip(keys, group))生成单个字典,最终组合成目标格式的列表
这个方法兼容所有子列表长度一致的输入,哪怕原始字典有更多日期键,也能自动适配转换。
内容的提问来源于stack exchange,提问作者OleksandrP
相关产品推荐
相关产品推荐

