Что делает метод filter python?
Функция filter()
в Python применяет другую функцию к заданному итерируемому объекту (список, строка, словарь и т.дю), проверяя, нужно ли сохранить конкретный элемент или нет.
Функция filter()
принимает два параметра - имя функции, содержащей условия для фильтрации входных значений, и итерируемый объект, к которому нужно применить функцию. В итоговый объект фильтра попадают те значения из итерируемого объекта, для которых вызов функции вернул True.
Объект фильтра — это итерируемый объект. Также можно конвертировать его в list, tuple или другие типы последовательностей с помощью соответствующих методов.
# список чисел
numbers = [1, 2, 4, 5, 7, 8, 10, 11]
def is_odd(number):
return number % 2 == 0
filter_numbers = list(filter(is_odd, numbers))
# [2, 4, 8, 10]
Filter()
– это функция встроенная в стандартный Python, т.е. не требует импорта библиотек.
Синтаксис
На вход подается 2 параметра – функция и итерируемый объект.
filter(function, iterable)
- function – функция с одним аргументом. Именно по ней фильтруются значения.
- Итерируемый объект “iterable” может содержать любую итерацию – список, кортеж, словарь и т.д
Применение filter()
с пользовательской функцией.
Одним из самых простых примеров является фильтр четных чисел.
numbers = [1, 2, 3, 4, 5, 7, 10, 11]
def filter_num(num):
if(num % 2) != 0:
return True
else:
return False
out_filter = filter(filter_num, numbers)
print("Отфильтрованный список: ", list(out_filter)) # Отфильтрованный список: [1, 3, 5, 7, 11]
В данном случае мы передаем в filter() пользовательскую функцию (filter_num) и список чисел - numbers.