Wenn ich es richtig, Ihr Ziel zu verstehen, Sie wollen eine if
Anweisung erstellen, die alle Anordnungen Ihrer string
Variable erstellt, dann testen, ob Ihr „string“ in jeder von denen ist Vereinbarungen.
Alle Anordnungen einer Liste würden die „Permutationen“, so dass Sie Permutation von itertools module verwenden können:
import itertools
string = ("red blue black")
all_arrangements = list(itertools.permutations(string.split()))
if string in [' '.join(i) for i in all_arrangements]:
print "cool"
Da die Regelung auf der Grundlage String generiert werden, können Sie Ihre erwarten, wenn Aussage zufrieden sein und "cool" wird immer gedruckt, es sei denn, Sie ändern die Logik der if
-Anweisung weiter.
Um besser zu erklären, was oben im Code los ist, können Sie den oben if
Anweisungsblock mit dem folgenden Code ersetzen könnten, und bestätigen Sie die Anordnung Ihrer Zeichenfolge entspricht:
print "checking for ", string
for arrangement in all_arrangements:
if string == ' '.join(arrangement):
print arrangement , "cool"
else:
print arrangement
Ausgabe:
checking for red blue black
('red', 'blue', 'black') cool
('red', 'black', 'blue')
('blue', 'red', 'black')
('blue', 'black', 'red')
('black', 'red', 'blue')
('black', 'blue', 'red')
Hoffe das hilft.
Mögliches Duplikat von [So generieren Sie alle Permutationen einer Liste in Python] (http://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python) – mkrieger1