欢迎访问宙启技术站
智能推送

Python中如何使用函数来提取出一个字符串中的数字?

发布时间:2023-10-19 09:42:37

在Python中,我们可以使用函数来提取字符串中的数字。下面是几种常见的方法:

1. 使用正则表达式:

import re

def extract_numbers(s):
    numbers = re.findall(r'\d+', s)
    return [int(num) for num in numbers]

这个函数使用了re.findall()函数来从字符串s中匹配所有的数字,并将其转换为整数后返回一个列表。

2. 使用isdigit()方法:

def extract_numbers(s):
    numbers = []
    current_number = ""
    for char in s:
        if char.isdigit():
            current_number += char
        elif current_number != "":
            numbers.append(int(current_number))
            current_number = ""
    if current_number != "":
        numbers.append(int(current_number))
    return numbers

这个函数遍历字符串中的每个字符,如果字符是数字,则将其添加到当前数字的末尾。如果字符不是数字且当前数字非空,则将当前数字转换为整数并添加到结果列表中。最后,如果当前数字非空,则将其转换为整数并添加到结果列表中。

3. 使用isdigit()split()方法:

def extract_numbers(s):
    numbers = []
    current_number = ""
    for char in s:
        if char.isdigit():
            current_number += char
        elif current_number != "":
            numbers.append(int(current_number))
            current_number = ""
    if current_number != "":
        numbers.append(int(current_number))
    return numbers

这个函数的实现和上一个相同,只是在最后使用了split()方法将字符串根据空格分割成多个子串,并返回一个列表。

无论使用哪种方法,你可以通过调用extract_numbers()函数并传入一个字符串来提取其中的数字。例如:

s = "I have 10 apples, 5 oranges, and 3 bananas."
numbers = extract_numbers(s)
print(numbers)

输出:

[10, 5, 3]

以上就是在Python中使用函数提取字符串中的数字的几种方法。