将可迭代对象列表传递给itertools函数
我正在使用itertools.product这个函数。我有一个深度为2的嵌套列表,也就是一个包含可迭代对象的列表。我想把这个嵌套列表传递给product函数,但不知道该怎么正确格式化它。
为了更清楚,我想要的是
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 个回答
7
product
这个函数可以接收不同数量的参数,所以你需要把你的列表里的内容拆开。
list(product(*nested_list)) # without list() normally, of course