Python中长度不等两列表如何分配长列表值生成映射字典
轮询分配不等长列表的实现方案
核心逻辑
按顺序轮询规则,将长列表B的元素依次归入短列表A各元素对应的分组,最终输出以A中元素为键、对应分配到的B元素列表为值的字典,完全匹配给出的输入输出示例规则。
实现步骤
- 初始化结果字典,以A中所有元素为键,对应空列表为初始值
- 遍历列表B,同步记录每个元素的索引值
- 用当前元素索引对A的长度取模,计算出该元素要分配到的A中元素位置
- 将当前B的元素追加到对应键的列表中,遍历完成即得到最终结果
代码实现(Python)
# 输入示例 B = [1,2,3,4,5,6,7] A = ['A','B','C'] # 核心分配逻辑 C = {k: [] for k in A} len_A = len(A) for idx, val in enumerate(B): target_key = A[idx % len_A] C[target_key].append(val) print(C) # 输出:{'A': [1, 4, 7], 'B': [2, 5], 'C': [3, 6]}
适配说明
该实现支持任意动态长度的输入列表,满足B长度始终大于A的约束,时间复杂度为O(n)(n为列表B的长度),无额外依赖,运行效率稳定。
内容的提问来源于stack exchange,提问作者user19358619
相关产品推荐
相关产品推荐

