【发布时间】:2011-08-18 14:10:24
【问题描述】:
在 python 中解析由空格分隔的浮点数列表的最佳原因是什么?
我有这样的行将来自一个来源:
string = " 4 1.6 8.29 0 0 3.55e-15 -1.28e-13 "
用未知数量的空格分隔数字以及字符串的开头或结尾。
我通常只使用numbers = map(float, string.split(" ")),因为我可以保证数字之间只有一个空格,并且字符串的开头或结尾不会有空格。我不擅长正则表达式,但有人建议我使用 re.split("\s+", string) 但这不起作用,因为有时我会在结果列表的开头得到空字符串。
我现在正在使用:re.split("\s+"),但这不起作用,因为有时我会在结果列表的开头得到空字符串。
我现在正在使用:
res = map(float, re.findall("\d+\S*\d*", string)
它以某种方式工作,但对我来说看起来很脆弱和丑陋。它可以匹配许多无法生成数字的字符串。
什么是最好的正则表达式模式,它将始终匹配整数和浮点数(有或没有指数符号),以便我可以使用 re.findall(patt, string) 并安全地恢复数字列表?
【问题讨论】: