Рассмотрим следующую программу Python3:
a = [0, 0]
i = 0
a[i] = i = 1
print(a, i)
a = [0, 0]
i = 0
i = a[i] = 1
print(a, i)
Я ожидал, что результатом будет:
[0, 1] 1
[1, 0] 1
Но вместо этого я получил:
[1, 0] 1
[0, 1] 1
Мой вопрос: есть ли что-либо в спецификации языка Python о ассоциативности оператора присваивания, или это поведение для приведенного выше примера undefined?
Все, что мне удалось найти, это то, что выражения оцениваются в форме слева направо, за исключением того, что значение r сначала оценивается в случае назначения, но это не помогает.