Фильтр списка (оставить только числовые значения)

Нужно отфильтровать список по такому признаку: элемент списка имеет только цифры в своём составе

пример списка:

ids = ['246817', '246815', '246796', 'yandex_rtb_R-A-332375-1', '246795']

То есть нужно оставить только числовые значения и убрать yandex_rtb_R-A-332375-1.


Ответы (3 шт):

Автор решения: entithat
import re

ids = ['246817', '246815', '246796', 'yandex_rtb_R-A-332375-1', '246795']
list(filter(lambda x: re.search('^\d+$', x), ids))
→ Ссылка
Автор решения: Эникейщик
numbers = [n for n in ids if n.isdigit()]
→ Ссылка
Автор решения: CrazyElf

Ну тут filter прямо напрашивается (хотя это и эквивалентно решению Эникейщик-а):

ids = ['246817', '246815', '246796', 'yandex_rtb_R-A-332375-1', '246795']
print(list(filter(str.isdigit, ids)))

Вывод:

['246817', '246815', '246796', '246795']
→ Ссылка