Фраза «разбить строку 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']