Как извлечь цифры с десятичными знаками из строки в Python: удобное руководство

В Python извлечение цифр с десятичными знаками из строки может быть распространенной задачей, особенно при работе с данными или синтаксическом анализе текста. В этой статье блога мы рассмотрим различные методы достижения этой цели, используя простые объяснения и практические примеры кода. Итак, давайте углубимся и научимся извлекать эти неуловимые числовые значения из строк!

Метод 1: регулярные выражения (регулярные выражения)
Регулярные выражения — это мощные инструменты сопоставления с образцом, которые можно использовать для извлечения определенных элементов из строк. Мы можем использовать их для поиска цифр с десятичными знаками в Python. Вот пример:

import re
def extract_digits_with_decimals(string):
    pattern = r'\d+\.\d+'
    matches = re.findall(pattern, string)
    return matches
# Example usage
text = "The price is $19.99. Limited time offer!"
digits = extract_digits_with_decimals(text)
print(digits)  # Output: ['19.99']

Метод 2: разделение и фильтрация
Другой подход — разделить строку на отдельные слова или символы и отфильтровать элементы, которые не представляют допустимых числовых значений. Вот пример:

def extract_digits_with_decimals(string):
    words = string.split()
    digits = []
    for word in words:
        try:
            digit = float(word)
            digits.append(digit)
        except ValueError:
            pass
    return digits
# Example usage
text = "The total is $54.99, including tax."
digits = extract_digits_with_decimals(text)
print(digits)  # Output: [54.99]

Метод 3: использование метода isdigit()
Если строка содержит только цифры и одну десятичную точку, мы можем использовать метод isdigit(), чтобы проверить, является ли каждый символ цифрой. Вот пример:

def extract_digits_with_decimals(string):
    digits = []
    current_digit = ''
    for char in string:
        if char.isdigit() or char == '.':
            current_digit += char
        elif current_digit:
            digits.append(float(current_digit))
            current_digit = ''
    if current_digit:
        digits.append(float(current_digit))
    return digits
# Example usage
text = "The average rating is 4.5 out of 5 stars."
digits = extract_digits_with_decimals(text)
print(digits)  # Output: [4.5, 5.0]

В этой статье блога мы рассмотрели три различных метода извлечения десятичных цифр из строк в Python. Мы научились использовать регулярные выражения, разбивать и фильтровать строку, а также использовать метод isdigit(). В зависимости от контекста и конкретных требований вашей задачи вы можете выбрать наиболее подходящий метод. Имея в своем арсенале эти методы, вы будете хорошо подготовлены к эффективному и легкому извлечению чисел из строк.