[Python] range vs xrange

Francesco Bonanno fgthct a gmail.com
Sab 24 Feb 2018 12:51:31 CET


buongiorno

Sto confrontando il comportamento in runtime di NumPy con le normali 
liste Python. Nel seguente codice, calcolerò la somma dei quadrati da 1 
a 1000 e vedremo quanto tempo impiegherà il calcolo. Lo faccio fare per 
10000 volte e stampo il tempo totale in modo che la misurazione sia 
sufficientemente accurata.

ecco il codice:

import timeit

normale_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))', 
number=10000) # si pianta qua
naive_np_sec = timeit.timeit('sum(na*na)', setup="import numpy as np; 
na=np.arange(1000)",
                              number=10000)
buona_np_sec = timeit.timeit('na.dot(na)', setup="import numpy as np; 
na=np.arange(1000)",
                             number=10000)

print("Esecuzione normale Python: %f sec" % normal_py_sec)
print("Esecuzione Naive NumPy: %f sec" % naive_np_sec)
print("Esecuzione Buona NumPy: %f sec" % good_np_sec)


normale_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))', 
number=10000) # si pianta qua con NameError: name 'xrange' is not defined.

Se cambio xrange con range va. Perchè?

Grazie

Franky

Ps: python 3.5, Numpy 1.14.1

Pss: ma non si può evitare l'import esplicito?


-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20180224/5f4e7733/attachment.html>


Maggiori informazioni sulla lista Python