Функции высшего порядка в Python
Python предоставляет мощные инструменты для обработки данных, известные как функции высшего порядка. Основными представителями этой категории являются map, filter и reduce. Данные функции позволяют эффективно работать с коллекциями данных, упрощая код и повышая его читаемость.
Функции высшего порядка
Функции высшего порядка — это функции, которые могут принимать другие функции в качестве аргументов или возвращать их. В Python map, filter и reduce являются наиболее часто используемыми функциями этого типа.
1. Функция reduce
Функция reduce применяется для свертки последовательности в единое значение. Она импортируется из модуля functools.
from functools import reduce
numbers = [2, 3, 8]
max_number = reduce(lambda x, y: x if x > y else y, numbers)
print(max_number) # Выведет: 8
В данном примере reduce используется для нахождения максимального числа в списке.
2. Функция filter
Функция filter применяется для отбора элементов последовательности, удовлетворяющих определенному условию.
numbers = [2, 3, 8, 15, 34, 42]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # Выведет: [2, 8, 34, 42]
Здесь filter используется для выбора четных чисел из списка.
3. Функция map
Функция map применяет заданную функцию к каждому элементу последовательности.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # Выведет: [1, 4, 9, 16, 25]
В этом примере map используется для возведения каждого числа в квадрат.
Рекомендации по использованию
При использовании функций высшего порядка рекомендуется избегать побочных эффектов в передаваемых функциях. Это означает, что функции не должны изменять глобальные переменные или производить вывод. Такой подход обеспечивает чистоту и предсказуемость кода.
