вот такой пример:
a = 'a3b4c2e10b1'
d = [3, 4, 2, 10, 1]
вместо этого у меня выходит вот такой список:
d = [3, 4, 2, 1, 0, 1]
a = 'a3b4c2e10b1'
d = [3, 4, 2, 10, 1]
d = [3, 4, 2, 1, 0, 1]
a = 'a3b4c2e10b1' def get_digit(s): out = [] # сохраняем числа d = '' # здесь собираем число из цифр for i in s: # для каждого симовола в строке s if i.isdigit(): #если символ цифра d += i# складываем в строку в переменной d else: # иначе if d:# если строка d не пустая out.append(int(d)) # добавляем в итоговый список,при этом преобразуя в int d = '' # обнуляем для следующего числа if d:# если в строке было последняя цифра,то добавляем в out out.append(int(d)) return out # возвращаем out print(get_digit(a))
>>> import re >>> >>> text = 'a3b4c2e10b1' >>> >>> out = list(map(int, re.findall(r'\d+', text))) >>> out [3, 4, 2, 10, 1] >>>