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

Python中如何将range列表转换为元素集并生成所有跨列表元素组合

实现方案

Python 标准库的itertools.product可以直接生成多个可迭代对象的笛卡尔积,甚至不需要提前把所有 range 手动转成列表B,如果你确实需要先得到B也可以单独处理。

方法1:一步到位直接生成笛卡尔积(无需提前转B)

itertools.product支持直接传入 range 对象作为参数,你只需要用*把列表A解包传进去即可:

import itertools

A = [range(0,2),range(0,4),range(0,3),range(0,3)]
# 直接生成所有笛卡尔积组合,转成列表的写法如下
result = list(itertools.product(*A))

如果需要每个组合元素都是列表而不是元组,调整写法即可:

result = [list(item) for item in itertools.product(*A)]

最终结果长度为你计算的2×4×3×3=72,最小元素组合为[0, 0, 0, 0],最大为[1, 3, 2, 2],完全符合需求。

方法2:先转成列表B再生成笛卡尔积

如果你需要先得到中间结果B,用列表推导式一行就能完成转换:

B = [list(r) for r in A]

之后同样用itertools.product处理B即可:

result = [list(item) for item in itertools.product(*B)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:06:03