2014-01-18 2 views
0

Что было бы самым простым способом создать список n-кортежей в Python?Как создать N-кортежи в Python?

Например, если я хочу, чтобы создать для числа п (для, например, 3):

Я хочу создать следующий набор кортежей:

(1,1,1) (1,1,2) (1,1,3) (2,1,1) (2,1,2) (2,1,3) (3,1,1) (3,1,2) (3,1,3) 
(1,2,1) (1,2,2) (1,2,3) (2,2,1) (2,2,2) (2,2,3) (3,2,1) (3,2,2) (3,2,3) 
(1,3,1) (1,3,2) (1,3,3) (2,3,1) (2,3,2) (2,3,3) (3,3,1) (3,3,2) (3,3,3) 

ответ

5

itertools.product Использование:

>>> from itertools import product 
>>> list(product(range(1, 4), repeat=3)) 
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)] 
+0

Можете ли вы подробно остановиться на том, как это работает? – Archana

+0

@Archana Это эквивалентно 3 вложенным петлям, прочитайте связанную документацию. –

+0

Спасибо! Удивительно. Вы были очень быстры! – Archana

3
l = [1, 2, 3] 
from itertools import product 
print [item for item in product(l, repeat=3)] 
Смежные вопросы