Ich möchte Iterools Permutationen für Strings statt nur Buchstaben verwenden.Python Itertools Permutationen mit Strings
import itertools
lst = list(permutations(("red","blue"),3))
#This returns []
Ich weiß, dass ich so etwas wie tun:
a = list(permutations(range(3),3))
for i in range(len(a)):
a[i] = list(map(lambda x: 'red' if x==0 else 'blue' if x==1 else 'green',a[i]))
EDIT: Ich möchte dies als meine Eingabe einzugeben, und erhalten diese als meine Ausgabe
input: ("red","red","blue")
output:
[(’red’, ’red’, ’red’), (’red’, ’red’, ’blue’),\
(’red’, ’blue’, ’red’), (’red’, ’blue’, ’blue’), (’blue’, ’red’, ’red’), \
(’blue’, ’red’, ’blue’), (’blue’, ’blue’, ’red’), (’blue’, ’blue’, ’blue’)]
was ist Ihre erwartete Ausgabe? Deine ursprüngliche Idee sieht für mich ok aus, der Grund, warum es '[]' zurückgibt, ist, dass du nach Länge-3-Permutationen in einer Liste von Länge-2 fragst - es gibt keine! – maxymoo
Es funktioniert perfekt, um Saiten zu vertauschen. Sie können jedoch nicht drei Elemente aus einer Liste von zwei Elementen in beliebiger Reihenfolge auswählen. Deshalb erhalten Sie die leere Liste als Ausgabe. – JohanL
sieht so aus, wie Sie wollen [Produkt] (https://docs.python.org/3/library/itertools.html#iitertools.product) – Copperfield