Gracias Chema.

Por ahora, lo estoy usando una vez y es por el hecho de que creo una lista con 
x=range(n), pero esta es un array y al usarlo como índice me genera error.

Existe un comando que crea una lista de 0 a n-1 similar al range del numpy?

Juan Pablo Fernández Gutiérrez

De: Python-es [mailto:python-es-bounces+jpfernandez=udem.edu...@python.org] En 
nombre de Chema Cortes
Enviado el: jueves, 19 de febrero de 2015 07:41 a.m.
Para: La lista de python en castellano
Asunto: Re: [Python-es] Cómo convertir una lista flotante a una lista de 
enteros.


El 18 de febrero de 2015, 22:19, Luis Fernando Barrera 
<luisferna...@informind.com<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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






[Universidad de Medellín]

La información contenida en este correo electrónico, está diseñada para uso 
exclusivo de la persona o entidad a la que va dirigida, y puede contener datos 
que sean confidenciales. Si el lector de este mensaje no es el destinatario 
previsto, empleado o agente responsable, se le notifica que cualquier 
divulgación, distribución o copia de esta comunicación está estrictamente 
prohibida. Si usted ha recibido este mensaje por error, por favor notifíquelo 
al correo del cual fue enviado.
_______________________________________________
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