Rango de Python a la lista

Estoy tratando de convertir un rango a la lista.

nums = [] for x in range (9000, 9004): nums.append(x) print nums 

salida

 [9000] [9000, 9001] [9000, 9001, 9002] [9000, 9001, 9002, 9003] 

Solo necesito algo como

  [9000, 9001, 9002, 9003] 

¿Cómo consigo solo la lista requerida?

Solo puedes asignar el rango a una variable:

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

En tu caso:

 >>> nums = range(9000,9004) >>> nums [9000, 9001, 9002, 9003] >>> 

Sin embargo, en python3 necesitas calificarlo con una lista ()

 >>> nums = list(range(9000,9004)) >>> nums [9000, 9001, 9002, 9003] >>> 

Python 3

Por razones de eficiencia, Python ya no crea una lista cuando usas range . La nueva gama es como xrange de Python 2.7. Crea un objeto de rango iterable al que puede desplazarse o acceder mediante [index] .

Si combinamos esto con el operador de expansión posicional * , podemos generar listas fácilmente a pesar de la nueva implementación.

 [*range(9000,9004)] 

Python 2

En Python 2, el range crea una lista … así que:

 range(9000,9004) 

La salida de rango es una lista:

 >>> print range(9000, 9004) [9000, 9001, 9002, 9003]