2010-10-23 139 views
32

我對編程非常陌生,所以我希望這個問題很簡單。將字符串序列轉換爲python中的浮點列表

我需要知道如何用空格在一行分開一串數字輸入轉換:

5.2 5.6 5.3 

和將它轉換爲一個浮動列表

lsit = [5.2,5.6,5.3] 

如何才能做到這一點?

+4

你的變量是真的叫做'lsit'嗎?還是說這個問題是一個錯字?如果它是mant是'list',那麼我還應該補充說你不應該使用'list'作爲變量名,因爲它隱藏了一個名字相同的內建函數。 – 2010-10-23 14:54:01

回答

60

嘗試列表理解:

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

注意的是Python 3.x中的第二個版本返回地圖對象:

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

在Python 2.x中也可以用地圖完成而不是一個列表。如果您需要列表,您可以通過致電list將其轉換爲列表,或者僅使用列表理解方法。

+2

只是想補充一點,Decimal可能是處理浮點的更好選擇。 http://docs.python.org/library/decimal.html – dcolish 2010-10-23 16:34:58

+0

當我嘗試使用此代碼時,出現錯誤「無法將字符串轉換爲浮點數」 – 2014-02-24 15:34:24