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

如何将不等长列表转换为以短列表为键的分组字典

不等长列表按短列表分组生成字典

给定两个不等长列表:

list1 = ['A', 'B', 'C']
list2 = [1, 2, 3, 4, 5, 6]

需要生成以短列表list1元素为键,长列表list2中循环对应分组的值为值的字典,最终结果如下:

master_dict = {'A': [1, 4], 'B': [2, 5], 'C': [3, 6]}

方法一:索引取模遍历分组

用collections.defaultdict自动初始化列表类型的值,遍历长列表时通过索引对短列表长度取模,匹配对应键并添加值:

from collections import defaultdict

list1 = ['A', 'B', 'C']
list2 = [1, 2, 3, 4, 5, 6]

master_dict = defaultdict(list)
for idx, num in enumerate(list2):
    key = list1[idx % len(list1)]
    master_dict[key].append(num)

# 转为普通字典(可选操作)
master_dict = dict(master_dict)
print(master_dict)

方法二:列表切片推导式

直接通过列表切片,为每个短列表元素提取长列表中对应步长的子列表,代码更简洁:

list1 = ['A', 'B', 'C']
list2 = [1, 2, 3, 4, 5, 6]

group_len = len(list1)
master_dict = {key: list2[i::group_len] for i, key in enumerate(list1)}
print(master_dict)

两种方法均可得到目标结果,可根据使用习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:07:17