gpt4 book ai didi

python - 是否有一个 Python 等效于 C 的 strtod 的 endptr 参数?

转载 作者:行者123 更新时间:2023-11-28 19:03:01 25 4
gpt4 key购买 nike

<分区>

我正在尝试编写一个函数来拆分包含 float 和一些单位的字符串。该字符串在数字和单位之间可能有也可能没有空格。

在 C 中,函数 strtod有一个非常方便的参数,名为 endptr,它允许您解析字符串的初始部分,并获得指向剩余部分的指针。由于这正是我在这种情况下所需要的,我想知道 Python 中是否有类似的功能。

由于 float 本身目前不提供此功能,我正在使用基于 https://stackoverflow.com/a/4703508/2988730 的正则表达式解决方案:

float_pattern = re.compile(r'[+-]?(?:(?:\d+\.?)|(?:\d*.\d+))(?:[Ee][+-]?\d+)')
def split_units(string):
match = float_pattern.match(string)
if match is None: raise ValueError('not a float')
num = float(match.group())
units = string[match.end():].strip()
return num, units

这还不够充分,原因有二。首先是它重新发明了轮子。第二个是它在不增加额外复杂性的情况下无法正确识别区域设置(这就是为什么我不想首先重新发明轮子的原因)。

郑重声明,字符串的尾部不能包含数字应包含的任何字符。唯一真正的问题是我不要求用空格将单位与数字分隔开,所以执行简单的 string.split(maxsplit=1) 是行不通的。

是否有更好的方法从字符串的开头获取 float ,以便我可以将其余部分作为其他内容处理?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com