Skip to content

Filter() vs Reduce()#

В чём разница?#

filter() - выбор элементов по условию.

reduce() - свертка списка в одно значение.

Пример использования filter() и reduce() над итерируемым объектом в Python:

    from functools import reduce

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    # Пример использования filter() для отфильтровывания четных чисел
    even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
    print(even_numbers) # выводит [2, 4, 6, 8, 10]

    # Пример использования reduce() для нахождения суммы чисел от 1 до 10
    sum_of_numbers = reduce(lambda x, y: x + y, numbers)
    print(sum_of_numbers) # выводит 55
В этом примере мы использовали filter() для отбора только четных чисел в списке numbers, и reduce() для нахождения суммы всех чисел в списке от 1 до 10.

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

  • reduce() также принимает два аргумента - функцию и итерируемый объект. Он выполняет функцию на каждой паре элементов из итерируемого объекта, образуя редуцированное значение, которое в конечном итоге становится результатом функции.

В примере мы использовали reduce() для нахождения суммы всех чисел в итерируемом объекте.