Ich habe zwei Listen:
%Vor% Ich möchte die erzeugten Kombinationen zwischen den Elementen der Liste b
und den Elementen der Liste a erhalten, aber die Elemente von a
als Paare (oder Tripel usw.) als Beispiel verwenden:
Dies gibt len(b) ** len(a)
Anzahl der Kombinationen.
Ich habe versucht, itertools.product
zu verwenden (wie beschrieben hier ), aber das wird geben nur die 6 möglichen Kombinationen.
Sie können itertools.product(..)
verwenden, aber repeat
als% co_de angeben %. So können Sie verwenden:
Das repeat=len(a)
generiert Tupel wie:
Also ist hier das erste Element des Tupels dasjenige, das an product(..)
angehängt ist, das zweite an a_
. Jetzt haben wir b_
sie zusammen mit der zip(..)
Liste erstellt:
Jetzt ist es nur eine Frage der Formatierung ( a
), und '%s_%s'%t
, die sie zusammen und ' '.join(..)
ihnen einbezieht (oder Sie können das Listenverständnis verwenden, um eine Liste zu erstellen).
Das Ergebnis für Ihre Beispieleingabe ist:
%Vor% Beachten Sie, dass die Elemente hier träge generiert werden. Dies kann nützlich sein, wenn Sie beispielsweise nur an den ersten yield
-Einheiten interessiert sind oder wenn Sie nicht alle gleichzeitig erstellen möchten.
Sie könnten Ihre paarweisen Elemente explizit mit itertools.product
erstellen und dann diese Paare erneut mit itertools.product
pairs
enthält die zwei Listen, die wieder in itertools.product
eingefügt werden können.
Das Ergebnis ist:
%Vor%Tags und Links python