在 python 中解析由空格分隔的 float 列表的最佳原因是什么?
我有这样的行,它们将来自一个源:
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)
它以某种方式工作,但在我看来又脆弱又丑陋。它可以匹配许多无法生成数字的字符串。
最好的正则表达式模式是什么,它总是匹配带或不带指数符号的整数和 float ,以便我可以使用 re.findall(patt, string) 并安全地恢复数字列表?
请您参考如下方法:
不需要正则表达式。只需使用不带任何参数的 string.split();它将拆分任意数量的空白。
