Фильтр Python ()

Метод filter () создает итератор из элементов итерируемого объекта, для которого функция возвращает значение true.

Проще говоря, filter()метод фильтрует данную итерацию с помощью функции, которая проверяет, является ли каждый элемент в итерации истинным или нет.

Синтаксис filter()метода:

 фильтр (функция, итерация)

filter () Параметры

filter() метод принимает два параметра:

  • function - функция, которая проверяет, возвращают ли элементы итерируемого значения true или false.
    Если None, функция по умолчанию использует функцию Identity, которая возвращает false, если какие-либо элементы являются ложными.
  • iterable - итерабельный, который должен быть отфильтрован, может быть наборами, списками, кортежами или контейнерами любых итераторов

Возвращаемое значение из filter ()

filter() Метод возвращает итератор, который прошел проверку функции для каждого элемента в итерируемом объекте.

filter() метод эквивалентен:

 # когда функция определена (элемент для элемента в итерабельном if function (element)) # когда функция None (элемент для элемента в итерабельном if element)

Пример 1: Как filter () работает для повторяющегося списка?

 # list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)

Вывод

 Отфильтрованные гласные: aeio 

Здесь у нас есть список букв, и нам нужно отфильтровать только гласные в нем.

Мы могли бы использовать цикл for для перебора каждого элемента в списке букв и сохранения его в другом списке, но в Python этот процесс проще и быстрее с использованием filter()метода.

У нас есть функция, filterVowelsкоторая проверяет, является ли буква гласной или нет. Эта функция передается в filter()метод со списком букв.

filter()Затем метод передает каждую букву filterVowels()методу, чтобы проверить, возвращает ли он истину или нет. В конце концов, он создает итератор тех, которые возвращают истину (гласные).

Поскольку итератор сам по себе не сохраняет значения, мы перебираем его в цикле и выводим гласные одну за другой.

Пример 2: Как работает метод filter () без функции фильтра?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Вывод

 Отфильтрованные элементы: 1 a True 0 

Здесь у нас есть случайный список чисел, строк и логических значений в randomList.

Мы передаем randomList filter()методу с первым параметром (функцией фильтра) как None.

Если для функции фильтра установлено значение None, функция по умолчанию использует функцию Identity, и каждый элемент в randomList проверяется, является ли он истинным или нет.

Когда мы перебираем последний filterList, мы получаем элементы, которые являются истинными: 1, a, True and '0'('0' как строка также истинно).

Интересные статьи...