Рассмотрим следующую программу 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-значение вычисляется первым в случае присваивания, но это не помогает.