Filter — это встроенная функция Python. Он фильтрует указанную последовательность или итерацию с помощью функции, которая проверяет каждый элемент или элемент в итерации на истинность или ложь. Проще говоря, функция filter фильтрует итерируемое через функцию. Данная функция проверяет каждый элемент последовательности или итерации и возвращает истину, если элемент удовлетворяет заданным критериям. В результате функция filter() создает новый итератор. Чаще всего используются итерируемые списки, кортежи и словари. В этой статье кратко описывается функция filter() с помощью примеров.
Давайте сначала обсудим синтаксис функции filter(). Синтаксис функции filter() следующий:
filter(function, iterable or sequence)
Функция фильтра принимает в качестве аргумента два параметра, т. е. функцию и итерацию. Функция проверяет каждый элемент или элемент итерируемого, истинно это или нет, в соответствии с заданными критериями. Второй аргумент — итерация или фильтруемая последовательность. Функция оценивает каждый элемент итерации по заданным критериям. Наконец, функция filter() возвращает отфильтрованный итератор.
Давайте посмотрим на примеры функции filter() и реализуем ее в нашем скрипте Python.
Создадим список номеров и отфильтруем его. В данном примере list_func() оценивает каждый элемент списка по заданному условию. Если элемент списка больше 5, функция возвращает значение true и добавляет элемент в фильтр.
#создание списка номеров my_list = [1,2,3,4,5,6,10,20,35,8,4,50,60] #создаем функцию def list_func(listObj): # условный оператор, чтобы проверить номер if(listObj>5): return True else: return False #используя функцию Filter для фильтрации повторяемое через list_func numbers = filter(list_func,my_list) #печать нового итератора for i in numbers: print(i)
В выходных данных отображается отфильтрованный итератор. Отфильтрованный итератор состоит из всех элементов, которые больше 5.
Создадим список символов и применим функцию фильтрации.
#создание списка номеров my_list = ['a','b','c','l','d','i','k','n','o','u','x'] #создание функции def list_func(listObj): word_list=['l', 'i', 'n', 'u', 'x'] # условный оператор для проверки символа if(listObj in word_list): return True else: return False #использование функции фильтра для фильтрации итераций через list_func words = filter(list_func,my_list) #печать нового цикла for i in words: print(i)
Давайте отфильтруем четные числа из заданного списка чисел с помощью функции фильтрации.
#создание списка номеров my_list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] #создание функции def list_func(listObj): # условный оператор для проверки символа if(listObj%2==0): return True else: return False #использование функции фильтра для фильтрации итераций через list_func even_numbers= filter(list_func,my_list) #печать нового цикла for i in even_numbers: print(i)
Давайте отфильтруем високосные годы из данного списка лет с помощью функции фильтрации.
#создание списка номеров my_list = [2010,2012,2014,2016,2018,2020,2022,2024] #создание функции def list_func(listObj): # условный оператор для проверки високосного года if(listObj%4==0): return True else: return False #использование функции фильтра для фильтрации итераций через list_func leap_year= filter(list_func,my_list) #печать нового цикла for i in leap_year: print(i)
Выходные данные отображают високосные годы из данного списка лет.
Функция фильтра в основном используется с лямбда-функцией. Давайте передадим лямбда-функцию в качестве аргумента функции filter().
#создание списка номеров my_list = [2010,2012,2014,2016,2018,2020,2022,2024] ##объявление переменной even_number #переменная even_number содержит четные числа #объявление функции lambda even_number = filter(lambda listObj:listObj%2==0,my_list) print("Список четных чисел") for i in even_number: print(i) leap_year = filter(lambda listObj:listObj%4==0,my_list) print("Список високосных лет") for x in leap_year: print(x)
Filter() — это встроенная функция Python, которая используется для фильтрации итерации для данной функции. Эта статья объясняет функцию filter() с примерами.