filter()
в Python используется для фильтрации элементов из итерируемого объекта (например, списка, кортежа, строки) на основе заданного условия. Она принимает два аргумента: функцию-предикат (возвращающую True
или False
) и итерируемый объект. filter()
возвращает итератор, содержащий только те элементы, для которых функция-предикат вернула True
.
Функция filter()
в Python - это встроенная функция, которая используется для фильтрации элементов из итерируемого объекта (например, списка, кортежа, строки) на основе заданного условия.
Она принимает два аргумента:
True
или False
). Если функция возвращает True
, элемент включается в результирующую последовательность; если False
- исключается.filter()
возвращает итератор (объект типа filter
), содержащий только те элементы из исходного итерируемого объекта, для которых функция-предикат вернула True
.
Пример:
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(is_even, numbers)
# Чтобы получить список, нужно преобразовать итератор в список:
even_numbers_list = list(even_numbers)
print(even_numbers_list) # Вывод: [2, 4, 6, 8, 10]
В этом примере, filter()
применяет функцию is_even
к каждому элементу списка numbers
. is_even
возвращает True
для четных чисел и False
для нечетных. Таким образом, filter()
возвращает итератор, содержащий только четные числа, который затем преобразуется в список.
Часто для краткости вместо именованной функции-предиката используют анонимную функцию (lambda-функцию):
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
even_numbers_list = list(even_numbers)
print(even_numbers_list) # Вывод: [2, 4, 6, 8, 10]
Ключевые моменты:
filter()
возвращает итератор, а не сразу список или кортеж.list()
, tuple()
).