有没有一种方法可以找到每个组合以从每个列表中选择一个元素(在列表中)?

时间:2019-05-26 09:34:12

标签: python combinations

我试图找到所有组合以从列表中的每个列表中选择一个元素。 (我更喜欢计算速度最快的方法。)

示例: 如果我的列表是[[1],[2,3],[4,5,6]],我希望得到以下结果(以任何顺序): [[1,2,4],[1,2,5],[1,2,6],[1,3,4],[1,3,5],[1,3,6]] < / p>

我尝试在itertools之类的模块中查找函数,但没有成功,并且不确定如何启动它。

我正在考虑执行以下操作,但是我不知道如何完成此操作: 找到要查找的排列数(此处称为m):

m = 1
for letter in letters:
    m *= len(letter)

然后设置一个for循环:

for i in range(m):

然后通过循环浏览列表中的所有列表并采用一个元素来找到每种组合。我当时正在考虑使用模数(%)函数进行选择,但是我不知道如何使它起作用。

1 个答案:

答案 0 :(得分:2)

想要的声音itertools.product()

>>> for x in itertools.product([1], [2,3], [4,5,6]):
...   print(x)
...
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)