Удобная встроенная функция reversed
:
for item in reversed(sequence):
Документация для перевернутого объясняет его ограничения.
Для случаев, когда мне нужно пройти последовательность в обратном порядке вместе с индексом (например, для модификаций на месте, изменяющих длину последовательности), я определил эту функцию для моего модуля codeutil:
import itertools
def reversed_enumerate(sequence):
return itertools.izip(
reversed(xrange(len(sequence))),
reversed(sequence),
)
Этот позволяет избежать создания копии последовательности. Очевидно, что ограничения reversed
остаются в силе.