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

Python中如何系统填充元组键字典的所有ID-type组合条目

如何为元组键字典补全所有ID与type的组合(缺失值设为0)?

假设你有一个以(ID, type)为元组键的字典,需要补全所有ID和type的笛卡尔积组合,缺失的组合值设为0,这里提供两种高效实现方式:

方法1:字典推导式 + itertools.product

利用itertools.product快速生成ID与type的所有可能组合,再通过字典推导式构建最终字典——原字典中存在的键取对应值,不存在的取0:

import itertools

original_dict = {(1,2): 5, (2,1): 7, (3,2): 15, (4,3): 10}
id_range = range(1, 5)  # ID范围1-4
type_range = range(1, 4)  # type范围1-3

full_dict = {(id_, t): original_dict.get((id_, t), 0) 
             for id_, t in itertools.product(id_range, type_range)}

方法2:初始化全0字典 + 更新原数据

先创建包含所有组合的全0字典,再用原字典的键值对覆盖已有条目,逻辑更直观:

original_dict = {(1,2): 5, (2,1): 7, (3,2): 15, (4,3): 10}
id_range = range(1, 5)
type_range = range(1, 4)

# 先初始化所有组合为0
full_dict = {(id_, t): 0 for id_ in id_range for t in type_range}
# 用原字典更新存在的键值
full_dict.update(original_dict)

这两种方法的时间复杂度都是O(M*N)(M为ID数量,N为type数量),属于最优复杂度——因为必须遍历所有可能的组合才能确保没有遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:12:10