Я удивлен, увидев, что никто еще не упомянул об использовании itertools.groupby
в качестве альтернативы для достижения этого.
Вы можете использовать itertools.groupby()
вместе с str.isdigit()
для извлечения чисел из строки как:
from itertools import groupby
my_str = "hello 12 hi 89"
l = [int(''.join(i)) for is_digit, i in groupby(my_str, str.isdigit) if is_digit]
Величина, удерживаемая l
, будет:
[12, 89]
PS: Это просто для иллюстрации, чтобы показать, что в качестве альтернативы мы могли бы также использовать groupby
для достижения этого. Но это не рекомендуемое решение. Если вы хотите достичь этого, вы должны использовать принятый ответ fm на основе g3] на основе использования списка с параметром str.isdigit
в качестве фильтра.