2010-10-23 22 views
32

Soy bastante nuevo en la programación, así que espero que esta pregunta sea lo suficientemente simple.Conversión de serie de cadenas en lista flotante en python

Necesito saber cómo convertir una entrada de cadena de números separados por espacios en una sola línea:

5.2 5.6 5.3 

y convertir esto en una lista de flotación

lsit = [5.2,5.6,5.3] 

¿Cómo puede hacerse esto ?

+4

¿Su variable realmente se llama 'lsit' o es un error tipográfico en la pregunta? Y si era mant to be 'list', también debería agregar que no debe usar' list' como nombre de variable ya que oculta un built-in con el mismo nombre. –

Respuesta

60

Pruebe lista por comprensión:

s = '5.2 5.6 5.3' 
floats = [float(x) for x in s.split()] 

En Python 2.x también se puede hacer con el mapa:

floats = map(float, s.split()) 

Tenga en cuenta que en Python 3.x la segunda versión devuelve un objeto de mapa en lugar de una lista Si necesita una lista, puede convertirla en una lista con una llamada al list, o simplemente use el enfoque de comprensión de listas.

+2

Solo quería agregar que Decimal podría ser un mejor candidato para tratar con puntos flotantes. http://docs.python.org/library/decimal.html – dcolish

+0

Recibo el error "No se pudo convertir la cadena en flotación" al intentar usar este código –

Cuestiones relacionadas