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]
Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.
Решение через цикл for:
a = input()
num_list = []
num = ''
for char in a:
if char.isdigit():
num = num + char
else:
if num != '':
num_list.append(int(num))
num = ''
if num != '':
num_list.append(int(num))
print(num_list)
Если в строке числа всегда отделены от слов пробелами, задача решается проще:
s = input()
word_list = s.split()
num_list = []
for word in word_list:
if word.isnumeric():
num_list.append(int(word))
print(num_list)
Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric() каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter().
s = input()
word_list = s.split()
num_list = [int(num) for num in filter(
Достарыңызбен бөлісу: |