[pyar] Duda sobre list comprehensions

Matias Bordese mbordese en gmail.com
Dom Sep 30 11:45:03 ART 2012


2012/9/29 Andrés Gattinoni <andresgattinoni en gmail.com>:
> 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?

Otra alternativa, que dependiendo de la situación capaz es más
eficiente (sólo construye la lista al momento de hacer el reduce)

>>> param = {'LIBS': 'lala', 'DATE': '20120405', 'INPUT': 'input_file'}
>>> g = (['-d', '%s=%s' % i] for i in param.iteritems())
>>> reduce(list.__add__, g)
['-d', 'LIBS=lala', '-d', 'DATE=20120405', '-d', 'INPUT=input_file']

Saludos!
Matías.



More information about the pyar mailing list