[pyar] Duda sobre list comprehensions

Juan BC jbc.develop en gmail.com
Sab Sep 29 19:13:23 ART 2012


El día 29 de septiembre de 2012 18:57, Andrés Gattinoni
<andresgattinoni en gmail.com> escribió:
> Hola listeros:
>
> Tengo una duda sobre list comprehensions.
> Tengo el siguiente diccionario:
>
> param = {'LIBS': 'lala', 'DATE': '20120405', 'INPUT': 'input_file'}
>
> Y quiero convertirlo en una lista como esta:
>
> ['-d', 'LIBS=lala', '-d', 'DATE=20120405', '-d', 'INPUT=input_file']
>
> Encontré una forma de hacerlo que sería así:
>
> [n for i in [['-d', '%s=%s' % (k, param[k])] for k in param.keys()] for n in
> i]
>
> Pero me parece horrible (demasiadas iteraciones para algo que no vale la
> pena).
>
> Hay alguna forma más linda/eficiente de hacerlo?
>
> Gracias!
>
> Andrés
>
> _______________________________________________
> 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

Por las reglas del zen de python de la 2 a la 7 .... no usar listas de
comprension seria una buena salida

In [4]: params = {'LIBS': 'lala', 'DATE': '20120405', 'INPUT': 'input_file'}
In [5]: l = []
In [6]: for k, v in params.items():
             l.append("-d")
             l.append("{}={}".format(k,v))
In [7]: l
Out[7]: ['-d', 'LIBS=lala', '-d', 'DATE=20120405', '-d', 'INPUT=input_file']


-- 
Juan B Cabral



More information about the pyar mailing list