Выбрать из строки числа (язык программирования Python)

Тема: 
Строки

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

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

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]

через isdigit и split

через for:

s = '5 dkfj78df 9 8 dkfj8'
integ = ''
 
for n in s:
    if n.isdigit():
        integ += n
    else:
        integ += ' '
 
print integ.split()

# or
print [int(i) for i in integ.split()]

и однострочником

s = '5 dkfj78df 9 8 dkfj8'
 
integ = ''.join([i if i.isdigit() else ' ' for i in s])
 
print integ.split()

Спасибо за дополнение.

Спасибо за дополнение.

через регулярки :)

s = '5 dkfj78df 9 8 dkfj8'
 
import re
print re.findall(r'\d+',s)

:)