如何将字符串转换为Python中的浮点数?

问题描述:

我有以下代码:如何将字符串转换为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

你必须每串多个号码,所以你需要先拆那些空白:

[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]