Python itertools.product 具有可变数量的参数

Posted

技术标签:

【中文标题】Python itertools.product 具有可变数量的参数【英文标题】:Python itertools.product with variable number of arguments 【发布时间】:2012-04-13 21:56:11 【问题描述】:

我正在尝试编写一个模块来使用 itertools.product 组合可变数量的列表。

我能得到的最接近的是:

import itertools
lists = [["item1","item2"],["A","b","C"], ["etc..."]]
searchterms = list(itertools.product(lists))
print searchterms

这不起作用,因为lists是一个单一的列表,所以它只返回原始序列。但我不知道如何将列表变量的每个元素传递给 itertools。

感谢您的任何建议。

【问题讨论】:

【参考方案1】:

您需要使用* 将单个列表分成其组成列表:

searchterms = list(itertools.product(*lists))

请参阅Unpacking Argument Lists 上的 Python 教程部分。

【讨论】:

谢谢!我在哪里可以找到有关 *var 的文档?

以上是关于Python itertools.product 具有可变数量的参数的主要内容,如果未能解决你的问题,请参考以下文章

Python itertools.product 具有任意数量的集合

Python itertools.product 具有可变数量的参数

Python itertools.product 重新排序生成

Python小技巧:使用*解包和itertools.product()求笛卡尔积(转)

itertools.product 是不是懒惰地评估它的论点?

python itertools模块实现排列组合