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

tur*_*oup 2 python product

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

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

[[1,2,3],['a','b']]
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Lev*_*sky 7

 l = [[1, 2, 3], ('a', 'b')]
 product(*l)
Run Code Online (Sandbox Code Playgroud)

这称为解包参数列表.


jdi*_*jdi 5

使用参数扩展(解包):

vals = [[1,2,3],['a','b']]
product(*vals)
Run Code Online (Sandbox Code Playgroud)

它的工作原理类似于:

>>> x, y = [[1,2,3],['a','b']]
>>> x
[1, 2, 3]
>>> y
['a', 'b']
Run Code Online (Sandbox Code Playgroud)