Colección de citas famosas - Diccionario de frases chinas - Las similitudes y diferencias entre xrange y range en Python

Las similitudes y diferencias entre xrange y range en Python

Rango Como se explicó en la sección anterior, rango([inicio,] parada[, paso]) genera una secuencia basada en el rango especificado por inicio y parada y el paso establecido por paso.

Por ejemplo:

gt; gt; rango(5)

[0, 1, 2, 3, 4]

gt; gt; rango(1, 5)

[1, 2, 3, 4]

gt; )

[0, 2, 4]

El uso de xrange es exactamente el mismo que el de rango. La diferencia es que no es un objeto de lista sino un generador.

gt; gt; xrange(5)

xrange(5)

gt; lista(xrange(5))

p>

p>

[0, 1, 2, 3, 4]

gt;gt;gt; xrange(1, 5)

xrange(1 , 5)

p>

gt; gt; lista(xrange(1, 5))

[1, 2, 3, 4]

gt; gt; gt; gt; lista (xrange(0, 6, 2) 2))

[0, 2, 4]

Del ejemplo anterior, podemos saber: cuando desea generar una secuencia de números grandes, usar xrange tendrá un rendimiento mucho mejor que el rango, porque no es necesario abrirlo de inmediato. Un gran espacio de memoria.

xrange y range se utilizan básicamente al realizar un bucle.

para i en rango(0, 100):

imprimir i

para i en xrange(0, 100):

print i

Los resultados de estas dos salidas son los mismos. De hecho, hay muchas diferencias. Range generará directamente un objeto de lista:

a = range(0, 100).

tipo de impresión(a)

imprimir a

imprimir a[0], a[1]

Resultado de salida:

lt;escriba 'lista'gt;

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 , 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 , 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 , 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 , 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

0 1

Xrange no generará una lista directamente, pero la generará cada uno time La llamada devuelve uno de los valores:

a = xrange(0, 100)

print type(a)

print a

imprime un[0], un[1]

Resultado de salida:

lt; escribe 'xrange'gt;

xrange(100)

0 1

Solo ve a Baidu para esto. Yo también soy de Baidu

.