2016-05-18 6 views
2

Zum Beispiel habe ich eine Liste von Objekten wie folgt aus:Wie man einige Elemente in Python-Arrays iteriert?

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

Ich brauche sie durchlaufen alle wie bei jeder Iteration Objekte zu erhalten:

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 

Grundsätzlich ist jedes Ergebnis wie ein Subarray der Eingabelisten.

Antwort

7

können Sie leicht 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)] 

Beachten Sie, dass die Ausgabe von jeder Kombination verwenden Sie suchen, die Cartesian product Ihrer Eingabelisten genannt wird.

Verwandte Themen