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

如何将两个关联列表转换为键对应多个值的Python字典

实现方法

下面提供三种常用的实现方案,可根据你的使用场景选择:

方案1:基础循环实现(无需引入第三方库,易理解)

直接遍历两个列表的配对元素,逐次存入字典即可:

month = [12,12,12,12,11,11,11,10]
wave_height = [3,6,8,2,4,9,7,9]

result = {}
# 用zip配对两个列表的对应位置元素
for m, h in zip(month, wave_height):
    # 月份首次出现时先初始化空列表
    if m not in result:
        result[m] = []
    # 追加当前浪高到对应月份的列表中
    result[m].append(h)

方案2:使用collections.defaultdict简化代码

借助标准库的defaultdict可以省略判断键是否存在的步骤,代码更简洁:

from collections import defaultdict

result = defaultdict(list)
for m, h in zip(month, wave_height):
    result[m].append(h)

# 如果你需要输出为普通字典,额外加一句即可:
# result = dict(result)

方案3:大数据量场景用pandas实现

如果你的列表长度非常大,用pandas的分组操作效率更高:

import pandas as pd

df = pd.DataFrame({'month': month, 'wave_height': wave_height})
# 按月份分组,将同组的浪高聚合为列表,最后转成字典
result = df.groupby('month')['wave_height'].apply(list).to_dict()

如果你需要字典的键按月份降序排列(12→11→10的顺序),可以在生成结果后补充排序逻辑:

result = dict(sorted(result.items(), key=lambda x: -x[0]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:45:01