[Python] Conversione tupla in intero

Simone Federici s.federici a gmail.com
Gio 10 Feb 2011 18:28:55 CET


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 <andreambu a gmail.com>

> 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 <g.bargelli a gmail.com>:
> > 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? :-)
> >
> > Il 10 febbraio 2011 17:44, Simone Federici <s.federici a gmail.com> ha
> scritto:
> >> Quale è la più performante?
> >>
> >> 2011/2/10 Gianluca Bargelli <g.bargelli a gmail.com>
> >>>
> >>> 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 <marcoberi a gmail.com> ha
> scritto:
> >>> > 2011/2/10 Gianluca Bargelli <g.bargelli a gmail.com>
> >>> >>
> >>> >> 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 a lists.python.it
> >>> > http://lists.python.it/mailman/listinfo/python
> >>> >
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> -Gianluca
> >>> _______________________________________________
> >>> Python mailing list
> >>> Python a lists.python.it
> >>> http://lists.python.it/mailman/listinfo/python
> >>
> >>
> >> _______________________________________________
> >> Python mailing list
> >> Python a lists.python.it
> >> http://lists.python.it/mailman/listinfo/python
> >>
> >>
> >
> >
> >
> > --
> > -Gianluca
> > _______________________________________________
> > Python mailing list
> > Python a lists.python.it
> > http://lists.python.it/mailman/listinfo/python
> >
>
>
>
> --
> Andrea
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20110210/fbb8d088/attachment.html>


Maggiori informazioni sulla lista Python