Приведите пример использования filter и reduce над итерируемым объектом.
filter() применяют к итерируемому объекту, чтобы оставить только элементы, для которых предикат возвращает True, а reduce() — чтобы последовательно свернуть все элементы в одно агрегированное значение (например, сумму). В Python filter(func, iterable) возвращает итератор отфильтрованных значений, а reduce(func, iterable, initializer=None) последовательно накапливает результат, при этом необязательный initializer задаёт начальное значение аккумулятора.
filter() и reduce() работают с любыми итерируемыми объектами: списками, кортежами, генераторами и т.д., не изменяя исходные данные.
filter(function, iterable) — вызывает function(element) для каждого элемента итерируемого объекта и возвращает итератор только с теми элементами, для которых результат является истинным значением.reduce(function, iterable, initializer=None) — «сворачивает» итерируемый объект в одно значение, последовательно вызывая function(accumulator, element); если указан initializer, он используется как начальное значение аккумулятора, иначе в качестве начального значения берётся первый элемент итерируемого объекта. Фактически вычисляется выражение вида f(...f(f(initial, a0), a1)..., an), где initial — это initializer или первый элемент, если инициализатор не задан.В этом примере filter() проходит по итерируемому объекту numbers и оставляет только числа, для которых лямбда-выражение x % 2 == 0 возвращает True. Функция reduce() сначала сворачивает числа в их сумму, на каждом шаге вызывая функцию с текущим аккумулятором и очередным элементом, а затем показывает использование необязательного третьего аргумента initializer, который задаёт стартовое значение аккумулятора (в примере это 10), влияя на конечный результат и позволяя корректно обрабатывать даже пустые итерируемые объекты.
Отметьте свой прогресс