[Python] Conversione tupla in intero

Paolo Bernardi villa.lobos a tiscali.it
Gio 10 Feb 2011 18:34:29 CET


On Thu, 2011-02-10 at 18:02 +0100, Gianluca Bargelli wrote:
> from timeit import Timer
> 
> t1 = Timer(""" reduce(lambda x, y: x*10+y, (1,2,3,4,5,6,7)) """)
> t2 = Timer(""" "".join([str(i) for i in (1,2,3,4,5,6,7)]) """)
> 
> print("Reduce: {0} | List comprehension: {1}").format(t1.timeit(), t2.timeit())
> 
> l'output sulla mia macchina con timeit() è:
> 
> "Reduce: 1.58372807503 | List comprehension: 2.46447396278"
> 
> usando Python 2.6.6 (Linux), qualcuno sa spiegare il perché di tale
> differenza? :-)

Ottengo anche io risultati simili (Python 2.7, Linux 32 bit, dual core a
1.86GHz, 2Gb RAM)... Ci vorrebbe un profiling fatto bene; a "naso"
immagino che chiamare str() n volte (più una singola join) sia
decisamente più costoso di fare una somma ed un prodotto n volte.

Paolo
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  490 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.python.it/pipermail/python/attachments/20110210/959868d1/attachment.pgp>


Maggiori informazioni sulla lista Python