2017-04-19 1 views

Antwort

4

Klingen wie Sie product aus dem wollen eingebaute in itertools Bibliothek

>>> import itertools 
>>> list(itertools.product([1, 2, 3], [4], [5, 6])) 
[(1, 4, 5), (1, 4, 6), (2, 4, 5), (2, 4, 6), (3, 4, 5), (3, 4, 6)] 
>>> 
>>> columns = [[1,2,3], 
       [4], 
       [5,6]] 
>>> list(itertools.product(*columns)) 
[(1, 4, 5), (1, 4, 6), (2, 4, 5), (2, 4, 6), (3, 4, 5), (3, 4, 6)] 
1

Hier gehen Sie:

a = [1,2,3] 
b = [4] 
c = [5,6] 

d = [[x, y, z] for x in a for y in b for z in c] 
0

Um ein cartesianischen Produkt, das Sie gerade in allen Dimensionen zu durchlaufen müssen machen in diesem Fall

Zum Beispiel:

Die Komplexität des Algorithmus wird immer schwierig sein (für 2 Arrays -> n2, für 3 -> n3, ..., für M -> n^M wobei n die Länge des längsten Arrays ist).

Beachten Sie, dass Sie Duplikate haben: (a, b) ist das gleiche wie (b, a). Sie können also den Algorithmus so ändern, dass er schneller arbeitet, wenn Sie die Duplikate nicht benötigen.

Verwandte Themen