на каждой итерации a[-1]
(последний элемент a
) присваивается значение a
(список становится [0,1,2,0]
, затем [0,1,2,1]
, затем [0,1,2,2]
)
a=[0,1,2,3]
for a[-1] in a :
print a[-1]
Он «работает» до конца (хотя вперед, а не в обратном порядке), где последняя итерация возвращает последнюю итерированную по значению: 2
Теперь, конечно, если вы просто хотите повторить список в обратном направлении:
for i in reversed(a):
print(i)
reversed(a)
лучше, чем a[::-1]
здесь, потому что он не создает список просто для итерации по нему.