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

如何对含N个键的字典值列表求笛卡尔积并映射原键?

解决字典值列表的笛卡尔积问题

可以用Python标准库中的itertools.product快速实现,同时通过zip把键和笛卡尔积中的元素一一对应,重新生成目标字典。具体步骤如下:

  1. 导入itertools模块
  2. 提取字典的键和对应的列表集合
  3. 用itertools.product生成所有列表的笛卡尔积
  4. 遍历每个积组合,通过zip将键与组合中的元素配对,转换为字典

完整代码示例

import itertools

# 原字典
event_dict = {'event1': [2000, 3000, 4000], 'event2': [123, 456]}

# 获取键和值列表
keys = event_dict.keys()
value_lists = event_dict.values()

# 生成笛卡尔积并转换为目标字典列表
result = [dict(zip(keys, combo)) for combo in itertools.product(*value_lists)]

# 输出结果
for item in result:
    print(item)

代码说明

  • itertools.product(*value_lists)会接收所有值列表作为参数,生成它们的笛卡尔积,每个输出是一个元组,比如(2000, 123)、(2000, 456)等
  • dict(zip(keys, combo))把每个元组中的元素和原字典的键一一配对,转换成符合要求的字典结构

你之前的问题出在分离键和值后,没有把每个位置的元素和对应的键绑定,用zip就能解决这个关联问题,保证每个值都能对应回原来的键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:32:03