Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Paolo Bernardi
And the winner is... ;-) È decisamente la soluzione più carina, funziona perché la reduce, come da documentazione, lavora da sinistra verso destra. On Thu, 2011-02-10 at 08:48 +0100, Marco Mariani wrote: > >>> reduce(lambda x, y: x*10+y, [2,3,5,7,8,3]) > 235783 signature.asc Description: This

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Marco Beri
On 10/feb/2011, at 08:11, Lorenzo Sutton wrote: > Ciao > > Marco Beri wrote: >> >> >> >> 2011/2/9 Nicola Ferrari >> Buonasera a tutti.. >> Domanda probabilmente stupida.. avendo una tupla (1,2,3,4,5,6,7), >> come posso creare un intero formato dagli elementi della tupla? >> (nell'esempio d

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Gianluca Bargelli
Ecco la prima cosa che mi è venuta in mente: t = (1,2,3,4,5,6,7) "".join([str(i) for i in t]) Pulita, leggibile...semplice! ;-) Ciao! Il 09 febbraio 2011 22:55, Nicola Ferrari ha scritto: > Buonasera a tutti.. > Domanda probabilmente stupida.. avendo una tupla (1,2,3,4,5,6,7), > come posso cre

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Simone Federici
On Thu, Feb 10, 2011 at 08:48, Marco Mariani wrote: > > > >>> reduce(lambda x, y: x*10+y, [2,3,5,7,8,3]) > 235783 > +1 = 235784 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Marco Beri
2011/2/10 Gianluca Bargelli > Ecco la prima cosa che mi è venuta in mente: > > t = (1,2,3,4,5,6,7) > "".join([str(i) for i in t]) > > Pulita, leggibile...semplice! ;-) > E sbagliata :-) Ci manca un int(). ___ Python mailing list Python@lists.python.it

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Gianluca Bargelli
Ops, pardon! t = (1,2,3,4,5,6,7) int("".join([str(i) for i in t])) La solita fretta :-) Il 10 febbraio 2011 17:32, Marco Beri ha scritto: > 2011/2/10 Gianluca Bargelli >> >> Ecco la prima cosa che mi è venuta in mente: >> >> t = (1,2,3,4,5,6,7) >> "".join([str(i) for i in t]) >> >> Pulita, leg

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Simone Federici
Quale è la più performante? 2011/2/10 Gianluca Bargelli > Ops, pardon! > > t = (1,2,3,4,5,6,7) > int("".join([str(i) for i in t])) > > La solita fretta :-) > > Il 10 febbraio 2011 17:32, Marco Beri ha scritto: > > 2011/2/10 Gianluca Bargelli > >> > >> Ecco la prima cosa che mi è venuta in men

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Gianluca Bargelli
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.5837280

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Lorenzo Sutton
Marco Beri wrote: On 10/feb/2011, at 08:11, Lorenzo Sutton > wrote: Ciao Marco Beri wrote: 2011/2/9 Nicola Ferrari > Buonasera a tutti.. Domanda probabilmente stupida.. avendo una tupla (1,2,3,4,5,6,7), come posso creare u

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione lordkrandel
On 10/02/2011 18.02, Lorenzo Sutton wrote: Marco Beri wrote: int (''.join (str(x) for x in (1,2,3,4,5,6,7))) # Non so se vi piace, è poco newb-friendly int( '%s' * 7 % tuple(range(1,7+1)) ) -- Wyrmskull ___ Python mailing list Python@lists.pyth

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione lordkrandel
On 10/02/2011 18.02, Gianluca Bargelli wrote: 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)]) """) "Reduce: 1.58372807503 | List comprehension: 2.46447396278" usando Python 2.6.6 (Linux), qualcuno sa spiegare il perché di

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Andrea Ambu
Con la reduce stai facendo solo operazioni con interi senza tutto l'overhead della conversione e lo spippolamento di stringhe. In pratica con la reduce e` come se facessi: def unisci_interi(tupla): r = 0 for i in tupla: r *= 10 r += i return r 2011/2/10 Gianluca Bargelli : > from

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Simone Federici
Già peccato che soffre di potenziali bug :-) >>> reduce(lambda x, y: x*10+y, [2,3,5,7,81,3]) 236513 2011/2/10 Andrea Ambu > Con la reduce stai facendo solo operazioni con interi senza tutto > l'overhead della conversione e lo spippolamento di stringhe. > > In pratica con la reduce e` come se f

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Paolo Bernardi
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

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Paolo Bernardi
I numeri, in assoluto, non vogliono dire granché, lordkrandel... Troppa variabilità di hardware e software. ;-) Piuttosto, esegui il timer di tutti e tre i metodi sul tuo computer e confronta i risultati, così quantomeno hai una certa uniformità di base. :-) Paolo On Thu, 2011-02-10 at 18:22 +010

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Paolo Bernardi
Già, dipende dalle precondizioni. ;-) On Thu, 2011-02-10 at 18:28 +0100, Simone Federici wrote: > Già peccato che soffre di potenziali bug :-) > > > >>> reduce(lambda x, y: x*10+y, [2,3,5,7,81,3]) > 236513 signature.asc Description: This is a digitally signed message part

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Simone Federici
>>> from timeit import Timer >>> t1 = Timer(""" reduce(lambda x, y: x*10+y, (3,2,6,7,1,21,2)) """) >>> t2 = Timer(""" "".join([str(i) for i in (3,2,6,7,1,21,2)]) """) >>> t3 = Timer(""" int( '%s' * 7 % (3,2,6,7,1,21,2)) """) >>> "Reduce: {0} | List comprehension: {1} | String% {2}".format(t1.timei

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Gianluca Bargelli
I miei risultati: (Python 2.6.6 Linux 64 bit su Intel Core duo T8100 @ 2.10 Ghz, 3 Gb Ram): Reduce: 1.50118589401 | List comprehension: 2.42310404778 | String: 1.31533288956 È logico pensare che la join+conversione sia l'overhead della List Comprehension...ma come si spiega la velocità di "String

Re: [Python] Conversione tupla in intero

2011-02-10 Per discussione Valerio De Carolis
Il 10/02/2011 19:04, Simone Federici ha scritto: from timeit import Timer t1 = Timer(""" reduce(lambda x, y: x*10+y, (3,2,6,7,1,21,2)) """) t2 = Timer(""" "".join([str(i) for i in (3,2,6,7,1,21,2)]) """) t3 = Timer(""" int( '%s' * 7 % (3,2,6,7,1,21,2)) """) "Reduce: {0} |