2010-10-23 13 views
32

Jestem całkiem nowym programistą, więc mam nadzieję, że to pytanie jest dość proste.Konwertowanie ciągów znaków na listy w pythonie

muszę wiedzieć jak przerobić wejście ciąg liczb oddzielonych spacjami na jednej linii:

5.2 5.6 5.3 

i przekonwertować to do listy pływaka

lsit = [5.2,5.6,5.3] 

Jak można to zrobić ?

+4

Czy twoja zmienna naprawdę nazywa się "lsit", czy jest to literówka w pytaniu? A jeśli jest to "lista", to powinienem dodać, że nie powinieneś używać 'list' jako nazwy zmiennej, ponieważ ukrywa ona wbudowane o tej samej nazwie. –

Odpowiedz

60

Spróbuj listowych:

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

w Pythonie 2.x to może być również wykonane z mapy:

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

pamiętać, że w Pythonie 3.x drugą wersję Zwraca obiekt mapę zamiast listy. Jeśli potrzebujesz listy, możesz przekonwertować ją na listę, dzwoniąc pod numer list, lub po prostu użyć podejścia do sprawdzania listy.

+2

Po prostu chciałem dodać, że Decimal może być lepszym kandydatem do radzenia sobie z zmiennymi punktami. http://docs.python.org/library/decimal.html – dcolish

+0

Podczas próby użycia tego kodu pojawia się błąd "nie można przekonwertować ciągu znaków na zmienną" –

Powiązane problemy