Python - 如何将iterables传递给product()?

时间:2012-06-19 22:16:31

标签: python product

我试图在Python中使用product()函数。我知道product()需要一堆iterables并且完成所有这些的笛卡尔积。

现在我把所有的迭代都放在一个列表中。我想知道如何立即传递该列表中的所有迭代?我无法直接将列表传递给产品,因为product()会将其视为一个可迭代的产品。 例如,我有一个列表列表:

[[1,2,3],['a','b']]

如何将[1,2,3]和['a','b']传递给产品,因此它等同于产品([1,2,3],['a','b' ])?

提前致谢!

2 个答案:

答案 0 :(得分:7)

 l = [[1, 2, 3], ('a', 'b')]
 product(*l)

这称为Unpacking argument lists

答案 1 :(得分:5)

使用argument expansion(解包):

vals = [[1,2,3],['a','b']]
product(*vals)

它与此类似:

>>> x, y = [[1,2,3],['a','b']]
>>> x
[1, 2, 3]
>>> y
['a', 'b']