[pyar] xrange (2.7) vs range(3.2)

Claudio Omar Melendrez Baeza claudio.melendrez en gmail.com
Jue Mayo 29 16:35:12 ART 2014


0] Por otro lado, ¿cuanto sentido tiene medir la performance de un
"for i in range(N): pass", ¿es algo que hacés mucho en tu código?

JAJAJA! Totalmente!!!!!!



2014-05-29 16:29 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:

> 2014-05-29 16:50 GMT+02:00 Claudio Omar Melendrez Baeza
> <claudio.melendrez en gmail.com>:
>
> > Python2 tiene range y xrange, donde el segundo es un generador. Python3
> > tiene solo range, que es un generador (equivalente al xrange de py2). La
> > comparacion en este caso es xrange de Py2 vs. range de Py3. En distintas
> > versiones de Python.
> >
> > Ahora respondiendo la pregunta de Daniel: calculo que sera el interprete
> > (CPython), que debe estar mas optimizado para Py2. Creo que hasta que
> Py3 no
> > llegue a un nivel de adopcion aceptable (nunca?) no se van a preocupar
> > demasiado por la performance...
>
> ¡Es que no son lo mismo!
>
> Sí, son equivalentes, pero la versión de Py3 es más poderosa. Con
> algún costo en performance [0], se ve.
>
> Ejemplos donde se nota que el nuevo range es mejor que el viejo xrange:
>
> Py2:
> >>> r = xrange(300)
> >>> r
> xrange(300)
> >>> r[::3]
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> TypeError: sequence index must be integer, not 'slice'
>
> Py3:
> >>> r = range(300)
> >>> r
> range(0, 300)
> >>> r[::3]
> range(0, 300, 3)
> >>> _[:5]
> range(0, 15, 3)
> >>> list(_)
> [0, 3, 6, 9, 12]
>
> O, directamente:
>
> Py2
> >>> xrange(3000000000)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> OverflowError: Python int too large to convert to C long
>
> Py3
> >>> range(3000000000)
> range(0, 3000000000)
>
> Slds.
>
> [0] Por otro lado, ¿cuanto sentido tiene medir la performance de un
> "for i in range(N): pass", ¿es algo que hacés mucho en tu código?
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140529/13fe7c31/attachment-0001.html>


More information about the pyar mailing list