Найдите непрерывные группы цифр и преобразуйте каждую в int. Для указанного примера это даст [12, 1, 56, 999] с сохранением порядка появления.
На вход приходит строка, на выходе нужен список чисел из строки:
Найдите непрерывные группы цифр и преобразуйте каждую в int. Для указанного примера это даст [12, 1, 56, 999] с сохранением порядка появления.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
На вход приходит строка, на выходе нужен список чисел из строки:
Пример:
На вход: "df12fhfj1jja56jdjdg999"
На выход: [12, 1, 56, 999]
Ответ
Найдите непрерывные группы цифр и преобразуйте каждую в int. Для указанного примера это даст [12, 1, 56, 999] с сохранением порядка появления.
import re
def extract_numbers(text):
return [int(part) for part in re.findall(r'[0-9]+', text)]
Выбраны именно ASCII-цифры, а не все Unicode-символы категории цифр. Строка без чисел даёт пустой список, ведущие нули при преобразовании в int не сохраняются. Минусы и десятичные точки в такой постановке считаются разделителями: для отрицательных или дробных чисел требуется другой согласованный формат.