Ich versuche einen Algorithmus zum Mischen einer Liste zu machen und dann eine neue Liste aller Kombinationen nach dieser Regel zu erstellen:Wie könnte ich eine Liste nach dieser Regel mischen?
Sie dürfen nur ein Paar tauschen. Zum Beispiel:
array = [1, 2, 3]
[3, 2, 1] #number at index 0 switched with number at index 2
Irgendwelche Gedanken darüber, wie man es schreibt?
Bearbeiten: Saschas-Code hat gut funktioniert. Ich schrieb diesen Code, bevor die Frage zu stellen:
sols = []
for i in range(len(a)):
for j in range(len(a)):
a[i] = a[j]
a[j] = a[i]
sols_perm.append(a)
Ich war mir bewusst, dass ich wegen der ungeordneten Paare einige identische Elemente in der Liste bekommen würde, aber es gerade eine Liste voller identische Elemente. Irgendwelche Gedanken warum?
Ihr Swapping falsch ist. Sie würden eine temporäre Variable benötigen (a [i] geändert, bevor sie verwendet wurde, um [j] zu setzen). Der Code in meinem Ansatz funktioniert anders (Python-Style Swap)! Das nächste Mal füge den Code direkt hinzu! – sascha