Выбрать из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке.

Следует посимвольно перебирать строку. Если очередной символ цифра, то надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input()
l = len(s)
integ = []
i = 0
while i < l:
    s_int = ''
    a = s[i]
    while '0' <= a <= '9':
        s_int += a
        i += 1
        if i < l:
            a = s[i]
        else:
            break
    i += 1
    if s_int != '':
        integ.append(int(s_int))
 
print(integ)
5 dkfj78df 9 8 dkfj8
[5, 78, 9, 8, 8]

Создано

Комментарии

Я пытался понять как он собирает в строчку данные, но так и не понял. В питоне новичек, как и в программировании. Есть задача: Получить числа и привязать их к значения из строки "temp1 37; temp2 46"
Пытался искать по 3-м значениям после temp1 но не получается.
(#
b = s.find("temp1 ")
b=b+6
 и далее ваш цикл только добавил
 i=i+b 
 a = s[i] 
но я явно где-то ошибся. можете добавить комментарии к коду,

Ответ на от Maxim

Не понятно, что значит фраза "привязать их значения из строки".

Если нужно из строки "temp1 37; temp2 46" получить что-то вроде:

temp1 = 37
temp2 = 46

, то видимо нужно использовать словарь, где темпы будут ключами, а числа их значениями:

{'temp1': 37, 'temp2': 46}

А так ?

list_num=[]
for i in any_text:
    try:
        num = int(i)
        list_num.append(num)
    except ValueError:
        continue
print(list_num)

Ответ на от Гость

Так получается извлечение отдельно взятых цифр. Например, из строки "hello3 bu 34 5kdf45" получится список  [3, 3, 4, 5, 4, 5]. Если требуется извлечь числа, то должен быть список [3, 34, 5, 45].