[Python-es] Cómo convertir una lista flotante a una lista de enteros.

Chema Cortes pych3m4 en gmail.com
Jue Feb 19 17:24:40 CET 2015


El 19 de febrero de 2015, 14:31, Juan Pablo Fernandez Gutierrez <
jpfernandez en udem.edu.co> escribió:

>  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?
>

Nos estás despistando un poco. Tú mismo te estás respondiendo: range(n)
crea una lista de enteros de 0 a n-1, tanto en numpy como en python.

Antes, dejar muy claro que una lista NO es un array. En una lista puedes
tener elementos de cualquier tipo, incluso otras listas. En un array, todos
los elementos son del mismo tipo.

Al decir que te da error al usar la lista x=range(n), ¿cómo la estás
usando?¿error de qué tipo?

Sin ver tu código, sospecho de que te estás liando con las matrices
multidimensionales. En python no existen, aunque en numpy sí. Ponnos el
fragmento del código que te falla y, sobre todo, el texto del error que te
da.



>
>
> Juan Pablo Fernández Gutiérrez
>
>
>
> *De:* Python-es [mailto:python-es-bounces+jpfernandez=
> udem.edu.co en 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 <
> luisfernando en 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<lasizoillo en 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
> <luisfernando en 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 en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en 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
>
>
>
>
>
>
> [image: 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 en 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150219/4eb5929b/attachment.html>


Más información sobre la lista de distribución Python-es