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

如何用列表的列表调用itertools.product生成句子组合

解决itertools.product生成句子组合的参数传参问题

嗨,我完全懂你的困扰——想通过itertools.product生成所有备选词的句子组合,但直接传嵌套列表得不到预期结果,又不想手动逐个指定几十个子列表参数对吧?

问题根源

你直接调用itertools.product(text_input)时,函数会把text_input里的每个子列表当成单个元素来处理,所以得到的是每个子列表组成的元组,而不是子列表内部元素的笛卡尔积。这和你手动逐个传参的逻辑完全不一样。

解决方案:用解包操作符*

Python的*操作符可以帮你自动把嵌套列表里的每个子列表作为单独参数传给product,完美替代手动逐个输入的麻烦。

直接看代码示例:

import itertools

text_input = [['The'], ['apple', 'banana'], ['is'], ['green', 'red']]
# 用*解包嵌套列表,将每个子列表作为独立参数传入product
raw_combinations = itertools.product(*text_input)
# 将每个元组形式的组合拼接成完整句子
sentences = [' '.join(comb) for comb in raw_combinations]

print(sentences)

运行这段代码会输出:

['The apple is green', 'The apple is red', 'The banana is green', 'The banana is red']

为什么这个方法管用?

*text_input会把你的嵌套列表“展开”,相当于手动调用itertools.product(text_input[0], text_input[1], text_input[2], ..., text_input[n]),不管你的嵌套列表有多少个子列表(哪怕几十个),这个操作都能自动完成,完全不用重复写参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:36:27