2017-12-19 2 views
0

Stellen Sie sich vor, Sie haben eine Liste (d), die aus anderen Listen mit unterschiedlichen Längen besteht. Wir möchten eine neue Liste erstellen, die wie das folgende Ergebnis aussieht. Aber offensichtlich ist in diesem Fall alles klar, wir haben a, b und c, also können wir verschachtelte Schleifen erzeugen.Wie man verschachtelte for-Schleifen im laufenden Betrieb in Python generiert

a = [1, 2] 
b = [10, 20] 
c = [100, 200, 300] 

d = [a, b, c] 

ret = [] 
for a1 in a: 
    for b1 in b: 
     for c1 in c: 
      ret.append([a1, b1, c1]) 

print ret 

, die in diesen Ergebnisse:

[[1, 10, 100], [1, 10, 200], [1, 10, 300], [1, 20, 100], [1, 20, 200], [1, 20, 300], [2, 10, 100], [2, 10, 200], [2, 10, 300], [2, 20, 100], [2, 20, 200], [2, 20, 300]] 

Was passiert, wenn wir nur mit unbekannter Anzahl von Listen, in denen d gibt es unbekannte Anzahl von Elementen wie unten?

d = [[1, 2, 3], [10], [100, 200, 300, 400]] 
+1

Haben Sie ausgecheckt 'itertools'? – jhpratt

+0

itertools ist der Weg zu gehen – SuperStew

+1

Ja, 'itertools.product' –

Antwort

0

Was Sie wollen, ist itertools.product:

import itertools 
a = [1, 2] 
b = [10, 20] 
c = [100, 200, 300] 
d = [a, b, c] 
ret = list(itertools.product(a, b, c)) # Or list(itertools.product(*d)) 
+0

Awesome! Vielen Dank Hai Vu – Ehsan

Verwandte Themen