[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