Я пытаюсь поменять два объекта в Python, как это A[i], A[A[i] - 1] = A[A[i] - 1], A[i]
не дает мне правильный вывод
В соответствии с порядком операции: https://docs.python.org/3/reference/expressions.html#evaluation-order правая часть разрешается первойа затем выполните задание слева направо.Предположим, i = 1
, тогда мы получим A[1], A[3] = A[3], A[1]
. Предположим, A = [-1, 4, 3, 1]
и i = 1
, где i - индекс
A[i], A[A[i] - 1] = A[A[i] - 1], A[i]
. В результате я получу [4,1,3,1]
, хотя я ожидалчтобы получить [-1, 1,3,4]
то есть A[1], A[3] = A[3], A[1]
Но когда я делаю это, я получаю правильное значение [-1,1,3,4]
.Почему этот работает, а выше не работает?
A[A[i] - 1], A[i] = A[i], A[A[i] - 1]