¿Cómo puedes producir la siguiente lista con range()
en Python?
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
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.
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).