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?