Что такое Pythonic способ получить список кортежей всех возможных комбинаций элементов двух списков? - PullRequest
4 голосов
/ 16 марта 2010

Предположим, у меня есть два списка разного размера

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

Что такое Pythonic способ получить список кортежей c всех возможных комбинаций одного элемента из a и одного элемента из b?

>>> print c
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]

Порядок элементов в c не имеет значения.

Решение с двумя for петлями тривиально, но не выглядит особенно питоническим.

Ответы [ 2 ]

13 голосов
/ 16 марта 2010

Использовать понимание списка:

>>> a = [1, 2, 3]
>>> b = ['a', 'b']
>>> c = [(x,y) for x in a for y in b]
>>> print c
[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')]
10 голосов
/ 16 марта 2010

Попробуйте itertools.product.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...