El 18 de febrero de 2015, 22:19, Luis Fernando Barrera <
luisferna...@informind.com> escribió:

> A mí me gusta usar siempre las comprensiones, así ya sé que el resultado
> es una lista.
>
> Y map es muy rápido y legible para aplicar funciones sobre un iterable.
>
>
Aunque "map" es un método utilizado en programación funcional, en python es
simplemente una función. Al contrario de otros lenguajes, es muy ilegible
cuando tienes que encadenar varios maps y filtros seguidos. En estos casos,
la alternativa de usar compresiones de listas es más recomendable.

En el caso que nos ocupa, se puede conseguir una versión más elegante con
el uso del iterador "enumerate":

items = (D[i,int(u)] for (i,u) in enumerate(x))

Sería lo recomendado si sólo la vas a usar una vez después. Si prefieres
lista o set bastaría con cambiar los paréntesis:

lista = [...]
conjunto = {...}

También puedes incluir esta expresión directamente en algunos cálculos
sencillos:

suma = sum(...)
maximo = max(...)
minimo = min(...)

O cálculos más complejos encadenando iteradores:

numeros_positivos = sum(1 for z in ( D[i,int(u)] for (i,u) in enumerate(x)
) if z > 0)

O mezclando listas con "zip":

zip( (...), (...), (...) )

y posteriormente operar para, por ejemplo, sumar sus elementos:

s = [sum(z) for z in zip( (...),(...),(...)) ]





>
> El 18 de febrero de 2015, 1:42 p. m., lasizoillo<lasizoi...@gmail.com>
> escribió:
>
> Esto es un poco off-topic y solo por curiosidad. ¿Por qué esa mezcla de
>> estilos?
>>
>> El día 18 de febrero de 2015, 18:11, Luis Fernando Barrera
>> <luisferna...@informind.com> escribió:
>> > nueva_lista = [map(int, x) for x in lista]
>>
>> nueva_lista = [[int(y) for y in x] for x in lista]
>> nueva_lista = map(lambda x: map(int, x), lista)
>>
>> Paradójicamente la mezcla de estilos es más compacta y tal vez más
>> legible. Estoy confuso :-O
>>
>> Un abrazo,
>>
>> Javi
>> _______________________________________________
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a