¿Imprimir una lista en orden inverso con range()?

¿Cómo puedes producir la siguiente lista con range() en Python?

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Solución

utilizar la función reversed():

reversed(range(10))

Es mucho más significativo.

Actualización:

Si quieres que sea una lista (como señaló btk):

list(reversed(range(10)))

Actualizar:

Si quieres usar sólo range para conseguir el mismo resultado, puedes usar todos sus parámetros. range(inicio, parada, paso)

Por ejemplo, para generar una lista [5,4,3,2,1,0], puede utilizar lo siguiente:

range(5, -1, -1)

Puede ser menos intuitivo, pero como se menciona en los comentarios, esto es más eficiente y el uso correcto del rango para la lista invertida.

Comentarios (11)

Utiliza la función incorporada 'range'. La firma es range(start, stop, step). Esto produce una secuencia que produce números, empezando por inicio, y terminando si se ha alcanzado parada, excluyendo parada.

>>> range(9,-1,-1)   
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(-2, 6, 2)
    [-2, 0, 2, 4]

En Python 3, esto produce un objeto no-listado range, que funciona efectivamente como una lista de sólo lectura (pero usa mucho menos memoria, particularmente para rangos grandes).

Comentarios (4)
range(9,-1,-1)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Comentarios (4)