2014-12-04 120 views
0

我有以下代碼:如何將字符串轉換爲Python中的浮點數?

invoer = file_input().split("=") 
fileinput=[float(i.replace(',', '.')) + 1 for i in invoer] 

其中invoer是:

>>> print invoer 
['5,4 4,5 8,7', '6,3 3,2 9,6 4,3', '7,6', '9,8', '5,5 7,8 6,5 6,4'] 

但是我似乎無法在爲float得到這個。

+0

可以顯示烏爾輸入數據??? – Hackaholic 2014-12-04 15:56:47

+0

@Hackaholic:'invoer'是輸入數據,OP包含它。 – 2014-12-04 15:59:18

回答

1

你必須每串多個號碼,所以你需要先拆那些空白:

[float(i.replace(',', '.')) + 1 for s in invoer for i in s.split()] 

在列表解析順序for迴路應被解讀爲嵌套循環;外循環爲for s in invoer,然後對於每個s我們循環for i in s.split()。每個i在循環轉換爲浮點數,則通過1

演示遞增:

>>> invoer = ['5,4 4,5 8,7', '6,3 3,2 9,6 4,3', '7,6', '9,8', '5,5 7,8 6,5 6,4'] 
>>> [float(i.replace(',', '.')) + 1 for s in invoer for i in s.split()] 
[6.4, 5.5, 9.7, 7.3, 4.2, 10.6, 5.3, 8.6, 10.8, 6.5, 8.8, 7.5, 7.4] 
相關問題