6 PEP 322: Iteración inversa

Hay una función nueva, reversed(seq), que toma una secuencia y devuelve un iterador que recorre los elementos de la secuencia en orden inverso.

>>> for i in reversed(xrange(1,4)):
...    print i
... 
3
2
1

Comparada con el rebanado extendido, como range(1,4)[::-1], reversed() es más fácil de leer, se ejecuta más rápido y usa bastante menos memoria.

Hay que destacar que reversed() sólo acepta secuencias, no cualquier iterador. Si se desea invertir un iterador, hay que convertirlo primero en lista con list().

>>> entrada = open('/etc/passwd', 'r')
>>> for linea in reversed(list(entrada)):
...   print linea
... 
root:*:0:0:System Administrator:/var/root:/bin/tcsh
  ...

See Also:

PEP 322, Iteración inversa
Escrita e implementada por Raymond Hettinger.

Consultar en Acerca de este documento... información para sugerir cambios.