在带有 itertools.product 的列表中使用列表

Use lists inside a list with itertools.product

我需要计算几个列表元素的笛卡尔积。似乎最好的方法是使用 itertools,尤其是 itertools.product。现在,我要使用的列表本身包含在一个列表中,我不能只为 itertools.product 使用更大的列表。我想知道我应该如何提取列表以使它们可用于 itertools.product。

这是一个说明问题的例子:

import itertools

elements=[[1, 2], [3, 4]]
product=itertools.product(elements)
print product

这会打印 [([1, 2],), ([3, 4],)]。我想要的是等同于以下内容,但我不必单独给出 "elements" 的所有元素:

product=itertools.product(elements[0], elements[1])
print product

打印 [(1, 3), (1, 4), (2, 3), (2, 4)]。

谢谢。

Unpack 您列表中带有星号运算符 * 的列表,以将产品应用于您的子列表。

product=list(itertools.product(*elements))