如何操作python itertools.product的参数

时间:2013-10-30 09:07:33

标签: python

Itertools.product(*args, **kargs)

我看到该产品可以获得许多参数。像

a = [1,2]
b = [3,4]
and I can itertools.product(a,b,a,b,a,b....)

我想要做的是在一个结构中收集所有参数。 因为我可能不知道有多少套我需要计算产品。

但是

itertools.product([a,b,a,b]) 

不起作用。

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:4)

只需使用itertools.product(*[a, b, a, b])解压缩列表。

In [1]: a = [1, 2]

In [2]: b = [3, 4]

In [3]: from itertools import product

In [4]: list(product(a, b, a, b))
Out[4]: 
[(1, 3, 1, 3),
 (1, 3, 1, 4),
 (1, 3, 2, 3),
 (1, 3, 2, 4),
 ...]

In [5]: test_list = [a, b, a, b]

In [6]: list(product(*test_list))
Out[6]: 
[(1, 3, 1, 3),
 (1, 3, 1, 4),
 (1, 3, 2, 3),
 (1, 3, 2, 4),
 ...]