[pyar] Una manera idiomatica de hacer esto

Angel Java Lopez ajlopez2000 en gmail.com
Vie Abr 19 11:52:37 ART 2013


Hola gente!

Hmmm... ni idea de como escribir en Python. Pero me recuerda a mis dias con
RPG II ;-)

Jeje... ya saben, lo haria con TDD.

Y en seudocodigo, lo primero que iria surgiendo seria:

currentdate = null
nitems = 0
total = 0

result = []

foreach date in dates
    if currentdate != date.date
          if currentdate != null
                result.add([currentdate, total/nitems])
          end

          currentdate = date.date
          nitems = 0
          total = 0
    end

    nitems++
    total += date.value
end

if currentdate != null
     result.add([currentdate, total/nitems])
end

O sea, no comparia una fecha con la siguiente, sino mantendria la ultima
fecha que estoy procesando, teniendo un valor particular (null) para
indicar que todavia no estoy procesando ninguna.

No apunto a algo idiomatico de Python, sino a algo que puede surgir
naturalmente como solucion.

Problemas: la inicializacion (.... nitems = 0, total = 0... ) se hace en
dos lugares, y el result.add se hace en dos lugares. Habria que mejorar
eso, y pienso que ya depende del lenguaje, contexto, y si importa o no eso.

A mi, personalmente, me inquietaria mas que NO ESTE hecho con TDD. Pero
bueno, son gustos decia una vieja, y le ponia cielorraso al horno ;-)

Angel "Java" Lopez
@ajlopez



2013/4/19 Santiago Basulto <santiago.basulto en gmail.com>

> Me alegro te sirva. Es horrible eso igual, pegale una revisada. No
> confíes en mi código, ni yo mismo confío ;)
>
> 2013/4/19 Jairo Trad <frodobolsonxx en gmail.com>:
> > Buenisimo Santiago! eso era lo que me hacia falta... despues le hago un
> > proffiling pero me parece que no voy a encontrar algo mas rapido que eso.
> >
> > Gracias a todos!
> >
> >
> > El 19 de abril de 2013 11:21, Santiago Basulto <
> santiago.basulto en gmail.com>
> > escribió:
> >
> >> Podés agrupar con itertools: http://dpaste.com/1064927/
> >>
> >> 2013/4/19 Maximiliano Bertacchini <maxiberta en gmail.com>:
> >> > Y por qué no usar itertools.groupby() ?
> >> >
> >> > On 04/19/2013 11:00 AM, Roberto Alsina wrote:
> >> >> On 19/04/13 10:54, Wil Alvarez wrote:
> >> >>> ¿Qué tanto te importa el performance? Porque puedes recorrer la
> lista
> >> >>> superior y agrupar en un diccionario (sacando el correspondiente
> >> >>> promedio), luego ese diccionario lo conviertes a una lista
> nuevamente
> >> >>> o lo usas así si no tienes problema.
> >> >>> La clave de cada elemento del diccionario sería la fecha
> >> >>>
> >> >>
> >> >> Y convertirlo en una lista como esa es list(diccionario.items())
> (bah,
> >> >> te queda una lista de tuplas ;-)
> >> >>
> >> >>>
> >> >>> El 19 de abril de 2013 10:49, Facundo Batista
> >> >>> <facundobatista en gmail.com <mailto:facundobatista en gmail.com>>
> escribió:
> >> >>>
> >> >>>     2013/4/19 Jairo Trad <frodobolsonxx en gmail.com
> >> >>>     <mailto:frodobolsonxx en gmail.com>>:
> >> >>>
> >> >>>     > Facu, ese es el aproach que estoy intentando ahora, pero que
> >> >>>     queda un for
> >> >>>     > con un if con un for anidado y no me gusta nada nada... poste
> en
> >> >>>     la lista
> >> >>>
> >> >>>     Debería quedarte un for con un if adentro, nada más.
> >> >>>
> >> >>>     Mostrá lo que estás haciendo...
> >> >>>
> >> >>>     --
> >> >>>     .    Facundo
> >> >>>
> >> >>>     Blog: http://www.taniquetil.com.ar/plog/
> >> >>>     PyAr: http://www.python.org/ar/
> >> >>>     Twitter: @facundobatista
> >> >>>     _______________________________________________
> >> >>>     pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar
> >
> >> >>>     http://listas.python.org.ar/listinfo/pyar
> >> >>>
> >> >>>     PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >> >>>
> >> >>>     La lista de PyAr esta Hosteada en USLA - Usuarios de Software
> >> >>>     Libre de Argentina - http://www.usla.org.ar
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> "Yo construyo Soberanía, uso Software Libre"
> >> >>> Wil Alvarez
> >> >>> Linux Counter #415026
> >> >>> http://damncorner.blogspot.com
> >> >>>
> >> >>>
> >> >>> _______________________________________________
> >> >>> pyar mailing list pyar en python.org.ar
> >> >>> http://listas.python.org.ar/listinfo/pyar
> >> >>>
> >> >>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >> >>>
> >> >>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
> de
> >> >>> Argentina - http://www.usla.org.ar
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> pyar mailing list pyar en python.org.ar
> >> >> http://listas.python.org.ar/listinfo/pyar
> >> >>
> >> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >> >>
> >> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
> de
> >> >> Argentina - http://www.usla.org.ar
> >> >>
> >> >
> >> >
> >> > --
> >> > Max
> >> > _______________________________________________
> >> > pyar mailing list pyar en python.org.ar
> >> > http://listas.python.org.ar/listinfo/pyar
> >> >
> >> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >> >
> >> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> >> > Argentina - http://www.usla.org.ar
> >>
> >>
> >>
> >> --
> >> Santiago Basulto.-
> >> _______________________________________________
> >> pyar mailing list pyar en python.org.ar
> >> http://listas.python.org.ar/listinfo/pyar
> >>
> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>
> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> >> Argentina - http://www.usla.org.ar
> >
> >
> >
> >
> > --
> > Jairo Trad
> > Ing. en Computación - FCEFyN - UNC
> > ar.linkedin.com/in/ingjairotrad
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> > Argentina - http://www.usla.org.ar
>
>
>
> --
> Santiago Basulto.-
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130419/86151f46/attachment.html>


More information about the pyar mailing list