Различные методы разделения строки в Python и извлечения чисел

Фраза «разбить строку Python, получить номер» переводится на английский как «Как разделить строку в Python и извлечь числа». Вот несколько способов добиться этого в Python:

Метод 1: использование регулярных выражений
Вы можете использовать модуль reв Python для разделения строки и извлечения чисел с помощью регулярных выражений. Вот пример:

import re
string = "Hello 123 World 456"
numbers = re.findall(r'\d+', string)
print(numbers)

Выход:

['123', '456']

Метод 2: использование isdigit() и Split()
Вы можете перебрать каждое слово в строке, проверить, является ли это числом, с помощью метода isdigit()и извлечь числа. Вот пример:

string = "Hello 123 World 456"
numbers = [word for word in string.split() if word.isdigit()]
print(numbers)

Выход:

['123', '456']

Метод 3: использование понимания списка и метода isnumeric()
Подобно предыдущему методу, вы можете использовать понимание списка и метод isnumeric()для извлечения чисел из строки. Вот пример:

string = "Hello 123 World 456"
numbers = [x for x in string.split() if x.isnumeric()]
print(numbers)

Выход:

['123', '456']

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

def extract_numbers(string):
    result = ''
    for char in string:
        if char.isdigit():
            result += char
        elif result:
            yield result
            result = ''
    if result:
        yield result
string = "Hello 123 World 456"
numbers = list(extract_numbers(string))
print(numbers)

Выход:

['123', '456']

Метод 5: использование Split() и isdecimal()
Если вы хотите извлечь десятичные числа, вы можете использовать метод isdecimal()вместо isdigit(). Вот пример:

string = "Hello 1.23 World 4.56"
numbers = [word for word in string.split() if word.isdecimal() or word.replace('.', '').isdecimal()]
print(numbers)

Выход:

['1.23', '4.56']