В Python извлечение чисел из строки может быть распространенной задачей, особенно при работе с текстовыми данными, содержащими числовые значения. В этой статье мы рассмотрим различные методы извлечения чисел из строки, используя разные подходы. Мы рассмотрим такие методы, как манипулирование строками, регулярные выражения и преобразование типов. Давайте погрузимся!
Метод 1: использование isdigit() и join()
def extract_numbers_1(string):
return ''.join(filter(str.isdigit, string))
Этот метод использует функцию isdigit(), которая проверяет, является ли каждый символ в строке цифрой. Он отфильтровывает нецифровые символы с помощью функции filter(), а затем объединяет полученные цифры обратно в одну строку.
Метод 2. Использование регулярных выражений (перемодуль)
import re
def extract_numbers_2(string):
return ''.join(re.findall(r'\d+', string))
Регулярные выражения предоставляют мощный способ сопоставления шаблонов в строках. Функция re.findall()возвращает все непересекающиеся совпадения шаблона регулярного выражения \d+, который соответствует одной или нескольким цифрам. Полученные совпадения затем объединяются в одну строку.
Метод 3: использование понимания списка и isdigit()
def extract_numbers_3(string):
return ''.join([char for char in string if char.isdigit()])
Этот метод использует понимание списка для перебора каждого символа в строке. Функция isdigit()используется для фильтрации нецифровых символов, а полученные цифры объединяются в одну строку.
Метод 4. Использование функций Split() и isdigit()
def extract_numbers_4(string):
return ''.join([s for s in string.split() if s.isdigit()])
Этот метод разбивает входную строку на список подстрок с помощью функции split(). Затем он отфильтровывает нецифровые подстроки с помощью isdigit()и объединяет полученные цифры в одну строку.
Метод 5. Использование регулярных выражений и функции map()
import re
def extract_numbers_5(string):
return ''.join(map(str, re.findall(r'\d+', string)))
Этот метод объединяет регулярные выражения с функцией map()для преобразования совпавших цифр в строки. Функция map()применяет функцию str()к каждому совпадению, и полученные строки объединяются в одну строку.
В этой статье мы рассмотрели несколько методов извлечения чисел из строки в Python. Мы рассмотрели такие методы, как манипулирование строками, регулярные выражения и преобразование типов. В зависимости от вашего конкретного случая использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Не забывайте учитывать такие факторы, как производительность, читаемость и сложность строковых шаблонов, с которыми вы имеете дело. Приятного кодирования!