Почему не работает встроенная функция .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]