Выделить числа из строки в список
Как мне отсеять 2 числа в массив из строчки?
print('Tny6anxayna = 104 nognucunkos §—-29 noanucok')
Output:
[104,29]
Ответы (3 шт):
Автор решения: Zhihar
→ Ссылка
ну как вариант если строка нестандартная - заменить все символы на пробелы, потом сделать split() и выделить числа, правда в этом случае и для 5a7 получится 2 числа
например так:
text = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'
text_digits = ''.join(letter for letter in text if letter in ' \t0123456789')
print(text_digits.split())
правда тут лишняя 6 из Tny6anxayna вылезает :(
Автор решения: Kers
→ Ссылка
Попробуйте регулярками:
import re
t = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'
p = re.compile("(\d*) ")
m = p.findall(t)
# m = ['', '', '104', '', '29']
ls = []
for i in m:
if i != "":
ls.append(i)
print(ls)
Возможно получится составить регулярку лучше чтобы не цепляла пробелы тогда можно будет убрать лишнюю конструкцию if но побыстрому получился такой вариант.
Автор решения: CrazyElf
→ Ссылка
Не совсем понял принцип, но видимо так:
import re
text = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'
re_digits = re.compile(r"\b\d+\b")
print(re_digits.findall(text))
Вывод:
['104', '29']