Рубрики
Без рубрики

Функция Python Filter ()

Функция Python Filter () используется для фильтрации элементов утечтительной (последовательности) с помощью предиката, который тестирует каждый элемент на утечке.

Автор оригинала: Pankaj Kumar.

Функция Python Filter ()

Python’s Фильтр () Функция используется для фильтрации элементов утечтительной (последовательности) с помощью предиката, который тестирует каждый элемент на утечке.

Предикат – это функция, которая всегда возвращает Правда или Ложь Отказ Мы не можем использовать универсальную функцию с Фильтр () , так как он возвращает все элементы только в том случае, если подходящее условие выполнено. Это означает, что функция фильтрации всегда должна возвращать логическое значение, и, таким образом, функция фильтра представляет собой предикат.

Базовый формат фильтра ()

Поскольку это функция, которая работает на Python, что это является одним из параметров. И поскольку он тестирует предикат на каждом элементе, функция также является еще одним параметром, который требуется.

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

Но в этом случае, так как мы работаем с объектами, Python возвращает нас A Объект фильтра В качестве иетерама, который окажется удобным для преобразования в другие типы, используя такие методы, как Список () и

Просто, не так ли? Давайте посмотрим, как мы применяем это и создаем рабочие программы, используя Фильтр () Отказ

Формат: filter_object (предикат, уникальный)

Вот очень простой пример, который фильтрует список с функцией, которая тестирует, нечет ли число или даже.

a = [1, 2, 3, 4, 5]

# We filter using a lambda function predicate.
# This predicate returns true
# only if the number is even.
filter_obj_even = filter(lambda x: x%2 == 0, a)

print(type(filter_obj_even))

# Convert to a list using list()
print('Even numbers:', list(filter_obj_even))

# We can also use define the predicate using def()
def odd(num):
    return (num % 2) != 0

filter_obj_odd = filter(odd, a)
print('Odd numbers:', list(filter_obj_odd))

Выход


Even numbers: [2, 4]
Odd numbers: [1, 3, 5]

Обратите внимание, что мы можем получить отдельные элементы объекта фильтра, итерация через него, поскольку это является неразмерным:

for item in filter_obj_odd:
    print(item)

Выход

1
3
5

Фильтр () и нет

Мы также можем использовать Нет как предикат с Фильтр () Отказ Нет Возвращает Правда Если объект имеет логическое значение Правда и Ложь иначе.

Это означает, что объекты, такие как 0 , Нет , '' , [] и т. Д., Все фильтруются по Нет предикат, поскольку они являются пустыми элементами объектами.

a = [0, 1, 'Hello', '', [], [1,2,3], 0.1, 0.0]

print(list(filter(None, a)))

Выход

[1, 'Hello', [1, 2, 3], 0.1]

Заключение

Мы узнали о Фильтр () Функция, которую Python предоставляет нам, для нанесения предиката на съемке.

Последовательность и читаемость Фильтр Делает это очень популярной функцией среди разработчиков для современных кодовых базов Python.

использованная литература