Python读取非标准数字格式

Python读取非标准数字格式,python,regex,string,Python,Regex,String,如果字符串没有标准格式,fastes将字符串转换为浮点的方法是什么 在我的特殊情况下,我需要读取这些字符串,并将它们转换为浮点 -7.5-4 7.5-5 与数字-7.5E-4和7.5E-5相对应 我需要最快的速度,因为我正在加载大文件 谢谢此lambda适用于您的测试用例(也适用于前导“+”): 开头的(1,-1)[s[0]=='-']负责乘以-1,如果有一个前导'-',则浮点转换带'+'和'-'前导符号,并将嵌入的'+'和'-'替换为'E+'和'E-',允许有效的浮点转换。什么是-7.5-4

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

在我的特殊情况下,我需要读取这些字符串,并将它们转换为浮点

-7.5-4
7.5-5
与数字-7.5E-4和7.5E-5相对应

我需要最快的速度,因为我正在加载大文件


谢谢

此lambda适用于您的测试用例(也适用于前导“+”):


开头的
(1,-1)[s[0]=='-']
负责乘以-1,如果有一个前导'-',则浮点转换带'+'和'-'前导符号,并将嵌入的'+'和'-'替换为'E+'和'E-',允许有效的浮点转换。

什么是
-7.5-4
?它是
-7.5-4
=
-11.4
?它不是一种非标准格式我不知道它是否是最快的方式,但不会像
float(re.sub(r'([0-9.][-+)',r'\1e',mystring))那样
work?我不知道你为什么会得到否决票或投票结果。这对我来说似乎是个好问题。你可以使用正则表达式组合来拆分字符串和字符串格式以插入一个“E”,然后将字符串转换为浮点
float({}E{}.format(*re.match(r'-\d+.\d+-\d*),test[0])。groups()
谢谢各位,至少你们理解这个问题。我会试试你们的选择
to_num = lambda s: (1,-1)[s[0]=='-']*
                             float(s.lstrip('-+').replace('-','E-').replace('+','E+'))