如何使用迭代器将迭代器列表转换为所有可能的列表



我有一个迭代器列表,例如l = [range(1), range(2), range(3)],每个迭代器都会迭代该插槽中的可能性。

然而,我不知道这份名单会有多长。在这种情况下,为了得到我想要的,我可以轻松地执行[[val1, val2, val3] for val1 in l[0] for val2 in l[1] for val3 in l[2]]

我已经看了很多itertools,但没有看到任何与此模式匹配的东西。

什么函数可以接收迭代器列表并生成列表的所有可能性的列表,其中列表中的每个值都是插槽中一个生成器的值?

当我输入这个问题时,我意识到实际上有一个itertools函数可以实现这一点。

list(itertools.product(*l))起作用。

我想我会把这个作为一个自我回答的问题发布,以防其他人有类似的术语。

最新更新