как из списка "достать" только числа

my_list = [1,'два',3,4,5,6,7,8,9,'ноль']

for num in my_list:
    if num == int:
        print(num)
    else:
        print('нет там никаких цифр')

возвращает:

нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр
нет там никаких цифр

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

Автор решения: Кирилл Малышев

Делайте проверку на тип так:

if type(num) is int:
→ Ссылка
Автор решения: Евгений

Для ваших задач отлично подойдёт стандартная функция filter:

>>> my_list = [1,'два',3,4,5,6,7,8,9,'ноль']
>>> list(filter(lambda x: type(x) is int, my_list))
[1, 3, 4, 5, 6, 7, 8, 9]
>>> result = list(filter(lambda x: type(x) is int, my_list))
>>> print(result if result else "нет там никаких цифр")
[1, 3, 4, 5, 6, 7, 8, 9]

Чтобы вывести числа так, как задумываете вы, можно использовать такой код:

my_list = [1,'два',3,4,5,6,7,8,9,'ноль']
result = filter(lambda x: type(x) is int, my_list)

if result:
    print(*result, sep="\n")
else:
    print("нет там никаких цифр")

Результат:

1
3
4
5
6
7
8
9
→ Ссылка