将可迭代对象列表传递给itertools函数

5 投票
1 回答
1036 浏览
提问于 2025-04-17 04:23

我正在使用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

撰写回答