2016-05-18 3 views
2

Например, у меня есть список объектов, как это:Как пропустить несколько элементов в массивах Python?

[[{1},{2},{3}],[{4},{5}],[{6},{7},{8}]] 

мне нужно перебирать их все, чтобы получить на каждой итерации объекты, такие как:

1,4,6 
1,4,7 
1,4,8 
1,5,6 
1,5,7 
1,5,8 
2,4,6 
2,4,7 
2,4,8 
2,5,6 
2,5,7 
2,5,8 

В основном каждый результат подобен югу массива входных списков.

ответ

7

Вы можете легко использовать itertools.product

>>> import itertools 
>>> x = list(itertools.product([1,2,3],[4,5],[6,7,8])) 
[(1, 4, 6), (1, 4, 7), (1, 4, 8), (1, 5, 6), (1, 5, 7), (1, 5, 8), (2, 4, 6), (2, 4, 7), (2, 4, 8), (2, 5, 6), (2, 5, 7), (2, 5, 8), (3, 4, 6), (3, 4, 7), (3, 4, 8), (3, 5, 6), (3, 5, 7), (3, 5, 8)] 

Обратите внимание, что выход каждой комбинации вы ищете называется Cartesian product ваших входных списков.

Смежные вопросы