передать список итераций в функцию itertools - PullRequest
2 голосов
/ 15 октября 2011

Я использую функцию 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, как это

nested_list = [[1,2],['a','b']]

но вместо этого я получаю

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

1 Ответ

4 голосов
/ 15 октября 2011

product принимает переменное количество аргументов, поэтому вам нужно распаковать список.

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