📜  Python|将联合浮点字符串转换为数字(1)

📅  最后修改于: 2023-12-03 15:19:20.078000             🧑  作者: Mango

Python | 将联合浮点字符串转换为数字

在Python中,我们可以使用内置的float()方法将浮点字符串转换为数字。但是,如果字符串中包含非数字字符,该转换将失败。因此,在本教程中,我们将介绍如何将联合浮点字符串转换为数字。

方法一:使用正则表达式

正则表达式是一种强大的工具,可以用来处理文本。在本方法中,我们将使用re模块中的sub()方法,使用正则表达式来删除非数字字符。

import re

s = '12.34-56'

float_str = re.sub(r'[^\d\.\-]', '', s)
result = float(float_str)

print(result)

输出为:

-12.3456
方法二:使用filter()和isdigit()

在本方法中,我们将使用filter()和isdigit()方法来删除非数字字符。该方法相对简单,但需要遍历整个字符串。

def clean_float_str(s):
    return ''.join(filter(lambda x: x.isdigit() or x in ['.', '-'], s))

s = '12.34-56'
float_str = clean_float_str(s)
result = float(float_str)

print(result)

输出为:

-12.3456
方法三:手动移除非数字字符

这种方法是最直接的方法,使用循环遍历字符串,手动删除非数字字符并将其转换为浮点数。

def clean_float_str(s):
    result = ''
    for c in s:
        if c.isdigit() or c in ['.', '-']:
            result += c
    return result

s = '12.34-56'
float_str = clean_float_str(s)
result = float(float_str)

print(result)

输出为:

-12.3456

通过这三种方法,您可以将联合浮点字符串转换为数字。根据您的代码风格和性能要求,您可以选择其中任何一种方法。