El día 7 de agosto de 2013 04:05, Asdrúbal Iván Suárez Rivera <asdrubal.ivan.suarez.riv...@gmail.com> escribió: > Saludos gente, sería interesante probar con blist[0]. A primera vista > pareciera bastante rápida. > > [0] https://pypi.python.org/pypi/blist/
Tiene buena pinta, aunque la he probado y no mejora mi caso particular. Mejora el tema de trocear listas grandes, parece que no lo hace tan bien cuando se trata de invertir listas. Supongo que es debido a tener que mantener el B+tree actualizado. Pongo tiempos con blist, ndarray y list, respectivamente: %timeit b[i+1:j+1]=b[j:i:-1] 1 loops, best of 3: 144 ms per loop %timeit l[i+1:j+1]=l[j:i:-1] 100 loops, best of 3: 10.5 ms per loop %timeit L[i+1:j+1]=L[j:i:-1] 10 loops, best of 3: 53.8 ms per loop Si miramos sólo la inversión, (ndarray no tiene inversión "in-place"): %timeit b.reverse() 100 loops, best of 3: 9.04 ms per loop %timeit L.reverse() 100 loops, best of 3: 5.76 ms per loop Para otras operaciones, blist funciona algo mejor: %timeit -n100 del b[1000:10002] 100 loops, best of 3: 1.54 ms per loop %timeit -n100 del L[1000:10002] 100 loops, best of 3: 2.13 ms per loop -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": http://ch3m4.org/blog Buscador Python Hispano: http://ch3m4.org/python-es _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/