Python-Mehrfachzuweisungsproblem (Liste) [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Tuple-Auspackauftrag ändert die zugewiesenen Werte 4 Antworten>>> i = 1
>>> A = [3,4,-1,1]
>>> A[A[i] - 1], A[i] = A[i], A[A[i] - 1]
>>> A
[3, 1, -1, 4]
>>> A = [3,4,-1,1]
>>> A[i], A[A[i] - 1] = A[A[i], - 1], A[i]
>>> A
[4, 1, -1, 1]
Ich habe eine Frage, wann ich mehrere Variablen für eine Liste zuweisen soll. Wie im obigen Beispiel ist die Zuweisung
A[A[i] - 1], A[i] = A[i], A[A[i] - 1]
unterscheidet sich von der Zuordnung
A[i], A[A[i] - 1] = A[A[i] - 1], A[i]
Ich bin wirklich verwirrt über die interne Berechnungsreihenfolge in Python. Warum sind die Ergebnisse unterschiedlich? Was ist der beste Weg, um diese Art von Mehrfachzuweisung in einer Zeile durchzuführen?