[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