[pyar] Duda sobre list comprehensions

Claudio Freire klaussfreire en gmail.com
Dom Sep 30 14:31:58 ART 2012


On Sun, Sep 30, 2012 at 1:26 PM, Ricardo Aráoz <ricaraoz en gmail.com> wrote:
>>>> reduce(tuple.__add__, zip(['-d']*len(param), ('%s=%s'%(k, param[k]) for
>>>> k in param)))
> ('-d', 'LIBS=lala', '-d', 'DATE=20120405', '-d', 'INPUT=input_file')

Ese reduce(tuple.__add__) tiene costo cuadrático.

Si lo quieren hacer funcional...

from itetools import *
reduce(list.__iadd__, imap(list,izip(repeat('d'),imap('%s=%s'.__mod__,
params.iteritems()))))

No creo que importe, pero esa línea de arriba corre enteramente en C,
al ser composición de funciones builtin, así que es muy rápida, y no
crea más listas grandes en memoria que la lista on el resultado, así
que es eficiente en el uso de memoria.

No es muy útil eso en este ejemplo, pero capaz que en algún otro más crítico sí.



More information about the pyar mailing list