Извлечение чисел из строки в Python: подробное руководство

В 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. Мы рассмотрели такие методы, как манипулирование строками, регулярные выражения и преобразование типов. В зависимости от вашего конкретного случая использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Не забывайте учитывать такие факторы, как производительность, читаемость и сложность строковых шаблонов, с которыми вы имеете дело. Приятного кодирования!