В прошлый раз мы говорили про методы работы с множествами в Python. Сегодня поговорим про применение lambda-функций в Python. Читайте далее про особенности применения lambda-функций в популярном языке программирования Python.
Что такое lambda-функции и где они чаще всего применяются
Lambda-функции — это анонимные функции (так как при их определении не указывается название), которые содержат лишь одно выражение. Данный тип функций создается через встроенную конструкцию lambda
, что не делает их уникальными, так как они не имеют собственного названия, а при их вызове необходимо лишь обратиться к реализованному определенным образом через lambda выражению. Эти функции часто применяются с функциями высшего порядка. Функции высшего порядка в Python — это функции, которые способны применять другие функции в качестве аргументов. Самыми известными функциями высшего порядка в языке Python являются следующие:
filter()
— отвечает за фильтрацию элементов по определенному условию. Следовательно, данная функция сохраняет только те элементы, которые удовлетворяют заданному условию. Объектом такого фильтра является итерируемый объект (например, список, строка, множество, массив и т.д.). Функцияfilter()
принимает два параметра: имя созданной пользователем функции, и, непосредственно, сам итерируемый объект.map()
— это функция высшего порядка, которая позволяет обрабатывать и преобразовывать все элементы в итерируемом объекте без использования цикла. На вход принимает такого же типа параметры, как иfilter()
.reduce()
— это функция высшего порядка, которая применяется к итерируемым объектам, когда необходимо получить результат в виде одного значения (например, сумма всех элементов в списке). На вход принимает такие же параметры, как и предыдущие вышеописанные функции.
Каждую из данных функций мы подробнее рассмотрим ниже.
Особенности применения lambda-функций к функциям высшего порядка: несколько практических примеров
В качестве простейшего примера применения лямда-функций для фильтрации рассмотрим создание нового списка, содержащего только четные числа [1]:
list_1 = [7,9,8,6,4,12,5,56] new_list = list(filter(lambda x: (x%2 == 0) , list_1)) print(new_list) # [8, 6, 4, 12, 56]
Как видно из примера, нам не понадобилось никаких дополнительных методов или циклов для формирования новой последовательности. Рассмотрим также пример для преобразования списка и возведения каждого его элемента в степень 2. Для этого применим функцию map() наряду с лямда-функцией [1]:
list_1 = [7,9,8,6,4,12,5,56] new_list = list(map(lambda x: x**2 , list_1)) print(new_list) # [1, 9, 16, 36, 100, 121, 225, 144, 196]
В следующем примере рассмотрим вычисление суммы всех элементов заданного списка и вывод ее на экран [1]:
from functools import reduce list_1 = [7,9,8,6,4,12,5,56] summ = reduce((lambda x, y: x + y), list_1) print(summ) # 107
Таким образом, благодаря возможности применения лямда-функций и функций высшего порядка, Python обеспечивает разработчика возможностью писать более лаконичный код. Это делает Python универсальным и надежным средством для работы с производительными приложениями, а также с Big Data обработкой.
Computer vision на Python
Код курса
VISI
Ближайшая дата курса
24 февраля, 2025
Продолжительность
40 ак.часов
Стоимость обучения
90 000 руб.
Освоить Python на профессиональном уровне в разработчика различных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Python в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:
- DPREP: Подготовка данных для Data Mining на Python
- Разработка и внедрение ML-решений
- Графовые алгоритмы. Бизнес-приложения
- Нейронные сети на Python
- NLP с Python
Источники