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

如何将整数列表与元组对列表转为一对多映射字典?

构建元组对到多k值列表的字典

方法1:普通字典循环实现

先初始化空字典,遍历kVals和pairSet的对应元素,逐个将k值追加到对应元组的列表中:

# 示例输入数据
kVals = [1, 7, 13, 19, 2, 8]
pairSet = [(2,1), (2,1), (2,1), (2,1), (3,2), (3,2)]

pair_to_ks = {}
for k, pair in zip(kVals, pairSet):
    if pair not in pair_to_ks:
        pair_to_ks[pair] = []
    pair_to_ks[pair].append(k)

# 验证结果
print(pair_to_ks[(2,1)])  # 输出: [1, 7, 13, 19]

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

借助defaultdict可以省去判断键是否存在的步骤,直接追加元素:

from collections import defaultdict

# 示例输入数据
kVals = [1, 7, 13, 19, 2, 8]
pairSet = [(2,1), (2,1), (2,1), (2,1), (3,2), (3,2)]

pair_to_ks = defaultdict(list)
for k, pair in zip(kVals, pairSet):
    pair_to_ks[pair].append(k)

# 可选:转换为普通字典
pair_to_ks = dict(pair_to_ks)

# 验证结果
print(pair_to_ks[(2,1)])  # 输出: [1, 7, 13, 19]

两种方法核心逻辑一致:遍历kVals与pairSet的对应关系,将每个k值收集到对应元组的列表中,避免了直接用dict(zip(pairSet, kVals))时重复键覆盖旧值的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:55:23