На вход приходит строка, на выходе нужен список чисел из строки:

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее