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

如何使用itertools.product计算长度动态变化的嵌套列表的笛卡尔积

完全可以实现,你只需要借助Python的序列解包操作符*,把嵌套列表直接拆成itertools.product的入参即可,无论后续追加多少个子列表都能自动适配,不需要修改调用逻辑。

代码示例

import itertools

# 初始嵌套列表
nested_list = [
    ["A", "B"],
    ["C", "D", "E"]
]

# 用*解包嵌套列表后传入product
result = list(itertools.product(*nested_list))
print(len(result)) # 输出 6,符合预期

当你动态追加子列表后,调用逻辑完全不用改:

# 新增子列表
nested_list.append(["F", "G"])

# 仍然用同样的方式调用
new_result = list(itertools.product(*nested_list))
print(len(new_result)) # 输出 12,对应 2*3*2 的组合总数

原理解释

*操作符会把可迭代对象拆成独立的位置参数传给函数,上面的写法等价于你手动写itertools.product(["A", "B"], ["C", "D", "E"], ["F", "G"]),嵌套列表有多少个子列表就会自动拆成多少个入参,完美适配动态变更的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:27:00