В 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(). В зависимости от контекста и конкретных требований вашей задачи вы можете выбрать наиболее подходящий метод. Имея в своем арсенале эти методы, вы будете хорошо подготовлены к эффективному и легкому извлечению чисел из строк.