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

如何将值为列表的Python字典转为所有键值组合的字典列表

解决方法

你的代码核心问题在于每次循环时生成了多个单键字典的列表,而不是将键值对合并成一个完整的字典。只需要把列表推导式替换成字典构造方式即可:

修改后的代码

from itertools import product

original_dict = {"key_00": [0, 1],
                "key_01": [2, 3]
                }

res = []
for combs in product(*original_dict.values()):
    # 直接用dict()将zip后的键值对转换成完整字典
    res.append(dict(zip(original_dict.keys(), combs)))

或者更简洁的列表推导式写法:

from itertools import product

original_dict = {"key_00": [0, 1],
                "key_01": [2, 3]
                }

res = [dict(zip(original_dict.keys(), comb)) for comb in product(*original_dict.values())]

关键说明

  • zip(original_dict.keys(), combs)会把每个组合中的值和对应的键一一配对,生成类似('key_00', 0), ('key_01', 2)这样的元组序列。
  • dict()可以直接把这种元组序列转换成一个完整的字典,替代了你之前生成多个单键字典列表的逻辑。

运行修改后的代码,就能得到预期输出:

[
 {"key_00": 0, "key_01": 2},
 {"key_00": 0, "key_01": 3},
 {"key_00": 1, "key_01": 2},
 {"key_00": 1, "key_01": 3}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:33:37