🔍 Как работает filter в питоне: полное руководство 2021

Функция filter в Python используется для фильтрации элементов последовательности с использованием заданного условия.

Принимает два аргумента: функцию-условие и итерируемый объект, например список или кортеж.

Используется следующий синтаксис:


filtered = filter(условие, итерируемый_объект)

Функция-условие должна возвращать True или False для каждого элемента итерируемого объекта. Если значение функции-условия равно True, элемент проходит фильтрацию и включается в результирующий итерируемый объект filtered.

Пример:


numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def is_even(n):
    return n % 2 == 0

even_numbers = list(filter(is_even, numbers))
print(even_numbers)  # [2, 4, 6, 8, 10]

В примере выше, функция-условие is_even возвращает True, если число является четным. Используя filter с этой функцией и итерируемым объектом numbers, мы получаем новый список, содержащий только четные числа.

Детальный ответ

Фильтр - это встроенная функция в Python, которая позволяет отфильтровать элементы последовательности на основе заданного условия.

Вот простой пример использования фильтрации в Python:


numbers = [1, 2, 3, 4, 5, 6]
def is_even(n):
    return n % 2 == 0

even_numbers = list(filter(is_even, numbers))
print(even_numbers)
    

В этом примере у нас есть список чисел от 1 до 6. Мы определяем функцию is_even, которая возвращает истину, если число является четным. Затем мы используем функцию filter, передавая ей функцию is_even и список чисел в качестве аргументов. Filter возвращает новый итератор, содержащий только четные числа из исходного списка. Мы преобразуем этот итератор в список с помощью функции list и печатаем результат: [2, 4, 6].

Пример выше демонстрирует, что функция фильтрации принимает два аргумента: функцию условия и последовательность, на которую нужно применить это условие. Функцию условия можно определить как именную функцию, анонимную функцию (lambda-функцию) или даже встроенную функцию.

Вот еще несколько примеров:


names = ["Alice", "Bob", "Charlie", "Dave", "Eve"]

# Фильтрация имен, начинающихся на букву "A"
a_names = list(filter(lambda name: name.startswith('A'), names))
print(a_names)

# Фильтрация отрицательных чисел
numbers = [-1, 2, -3, 4, -5, 6]
negative_numbers = list(filter(lambda x: x < 0, numbers))
print(negative_numbers)
    

В первом примере мы используем lambda-функцию, чтобы проверить, начинается ли имя с буквы "A". Результатом будет список имен, начинающихся на "A". Во втором примере мы фильтруем отрицательные числа из списка чисел.

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

Видео по теме

51 Функция filter python. Что делает функция filter в Python

Уроки Python casts #12 - Как работает функция filter()

#57. Функция filter для отбора значений итерируемых объектов | Python для начинающих

Похожие статьи:

🖥️Как сделать приложение через Python: пошаговое руководство для начинающих🐍

🕒 Как определить время в Python: простые способы и функции

🐍 Как поставить питон на Виндовс 7? 🖥️✨ Простая инструкция для начинающих!

🔍 Как работает filter в питоне: полное руководство 2021

🧹 Как очистить в питоне консоль от ненужных данных и сообщений?

🔍 Как правильно написать произведение чисел в Python? 🐍

🐍 Python tkinter виджеты: как пользоваться ими?