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/