[pyar] Cuestión de elegancia (?)

Marcos Moyano marcos en anue.biz
Mie Mayo 30 08:18:09 ART 2012


tags = 'animal, reptil, , anfibio , peligroso'

for tag in tags.split(","):
       if tag.strip():
           print tag


Simple y legible.

Salu2

2012/5/30 Hystrix <ego en hystrix.com.ar>

> 2012/5/26 Claudio <claudiobidau en gmail.com>:
> > Hola!
> > Tengo un código que funciona pero es horrible (sobre todo la linea del
> > 'for') y me gustaría saber si existe alguna forma mas elegante de
> > escribirlo.
> >
> > En la vista tengo lo siguiente (es el post de un form):
> >
> >     post = Post()
> >
> >     for tag_name in set(map(lambda tag:tag.strip(),
> > form.tags.data.split(','))):
> >       if len(tag_name) > 0:
> >         t = Tag.query.filter_by(name=tag_name).first() or Tag(tag_name)
> >         post.tags.append(t)
> >
> >     db.session.add(post)
> >     db.session.commit()
> >
> > form.tags.data es un string separado por comas que puede traer cualquier
> > verdura. Lo separo, le saco los espacios en blanco, quito los repetidos y
> > por último chequeo si ya lo tengo en la base de datos. Increíblemente
> > funciona
> >
> > Otra opción que encontre por ahi fue meter la "lógica guarda tags"
> > directamente en el modelo pero no se si es lo correcto :S
> >
> > Saludos y muchas gracias
> >
> > Claudio
>
> Supongo que hay mucho de gusto personal, yo lo separaría un poco más
> en lugar de juntar todo en una sola linea. Tambien hice una funcion
> para limpiar el tag, en tu caso por ahora es innecesario pero
> eventualmente podes querer hacer otras cosas además de strip como
> pasar todo a minuscula, eliminar caracteres no alfabeticos, etc.
> Si usas Python >= 2.7 podes aprovechar set comprehension que son como
> list comprehension pero con llaves y generan un set en lugar de una
> lista.
>
>    tags = 'animal, reptil, , anfibio , peligroso'
>
>    def clean_tag(tag):
>        return tag.strip()
>
>    all_tags = tags.split(',')
>    for tag_name in {map(clean_tag, all_tags)}:
>        if tag_name:
>            print tag_name
>
>
> --
> Hystrix
> _______________________________________________
> 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
>



-- 
Marcos Moyano
Co-Founder of Anue
Skype: marcosmoyano
http://www.anue.biz/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120530/5ae89d0a/attachment.html>


More information about the pyar mailing list