将迭代列表传递给itertools函数

时间:2011-10-15 19:40:41

标签: python itertools

我正在使用itertools.product函数。我有一个2深的嵌套列表,这是一个可迭代的列表。我想将此传递给产品功能不知道如何正确格式化。

要清楚,我想要

In [37]: [k for k in product([1,2],['a','b'])]
Out[37]: [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]

但是从像

这样的嵌套列表输入生成
nested_list = [[1,2],['a','b']]

但我得到了

In [36]: [k for k in product(nested_list)]
Out[36]: [([1, 2],), (['a', 'b'],)]

1 个答案:

答案 0 :(得分:4)

product需要可变数量的参数,因此您需要解压缩列表。

list(product(*nested_list)) # without list() normally, of course