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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage