Python读取非标准数字格式

时间:2016-01-22 15:43:06

标签: python regex string

如果字符串没有标准格式,将字符串转换为float的方法是什么?

在我的特殊情况下,我需要阅读这些字符串并将其转换为 float

-7.5-4
7.5-5

对应于数字-7.5E-4和7.5E-5

我需要最快,因为我正在加载大尺寸文件。

由于

1 个答案:

答案 0 :(得分:1)

这个lambda适用于您的测试用例(也带有前导'+'):

to_num = lambda s: (1,-1)[s[0]=='-']*
                             float(s.lstrip('-+').replace('-','E-').replace('+','E+'))

如果有一个前导' - ',则开头(1,-1)[s[0]=='-']负责乘以-1,然后浮动转换带去'+'和' - '标志,并替换嵌入的'+'和' - 'with'E +'和'E-',允许有效转换浮动。