2010-10-23 20 views
32

Sono abbastanza nuovo nella programmazione quindi spero che questa domanda sia abbastanza semplice.Conversione di serie di stringhe in elenco float in python

ho bisogno di sapere come convertire un ingresso stringa di numeri separati da spazi su una sola riga:

5.2 5.6 5.3 

e convertire questo a un elenco galleggiante

lsit = [5.2,5.6,5.3] 

Come si può fare ?

+4

La tua variabile si chiama realmente "lsit" o è un errore nella domanda? E se fosse mantenerlo 'list', dovrei anche aggiungere che non dovresti usare' list' come nome di una variabile dato che nasconde un built-in con lo stesso nome. –

risposta

60

Prova una lista di comprensione:

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

In Python 2.x si può fare anche con la mappa:

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

Si noti che in Python 3.x seconda versione restituisce un oggetto della mappa piuttosto che una lista. Se è necessario un elenco, è possibile convertirlo in un elenco con una chiamata a list oppure utilizzare semplicemente l'approccio di comprensione degli elenchi.

+2

Volevo solo aggiungere che Decimal potrebbe essere un candidato migliore per gestire i punti mobili. http://docs.python.org/library/decimal.html – dcolish

+0

Ricevo l'errore "Impossibile convertire la stringa in float" quando si tenta di utilizzare questo codice –

Problemi correlati