Почему не работает встроенная функция .append()?

Функция .append() не добавляет элемент в конец списка:

# Filter out Strings from an Array

# Create a function that takes a list of
# non-negative integers and strings and return a new list without the strings.
# Example: filter_list([1, "a", "b", 0, 15]) ➞ [1, 0, 15]


# 1.Тут я принимаю значение от пользователя
users_input = input().split()

# 1.1. В этот список я кидаю только числа
final_list = []

# 2. Эта функция перебирает список который ввёл пользователь
def int_or_string (users_var):

    # 3. Если значение в списке users_input == int, тогда кидаем его в final_list
    for i in users_var:
        if i == int:
            final_list.append(i)
        else:
            continue

# 4 Запускаем функцию и выводим final_list в консоль
int_or_string(users_input)
print (final_list)

Условия задачки, см. комментарии в коде.


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

Автор решения: Jack_oS

Так как в users_input после:

users_input = input().split()

все элементы - строки

>>> users_input
['1', 'a', 'b', '0', '15']

то к ним можно применить метод строк .isdigit():

def int_or_string (users_var):
    return [i for i in filter_list if i.isdigit()]

А если как в вашем примере (в функцию передается список разнотипных элементов):

filter_list([1, "a", "b", 0, 15])

то можно проверять type:

def filter_list(array):
    return [a for a in array if type(a)==int]
→ Ссылка