Python lambda (анонимная функция)
Python используетlambdaдля создания анонимных функций.
Лямбда-функция — это небольшая, анонимная, встраиваемая функция, которая может иметь любое количество параметров, но может содержать только одно выражение.
Анонимным функциям не нужно использоватьdefключевое слово для определения полноценной функции.
лямбда-функции обычно используются для написания простых однострочных функций, часто применяются, когда функцию нужно передать в качестве параметра, например, в таких функциях, как map(), filter(), reduce() и т. д.
Особенности лямбда-функций:
- Лямбда-функция анонимна; у неё нет имени функции, и её можно использовать, только присвоив её переменной или передав в качестве параметра другим функциям.
- Лямбда-функция обычно содержит только одну строку кода, что делает её подходящей для написания простых функций.
Формат синтаксиса лямбда-функции:
lambda arguments: expression
lambda— это ключевое слово Python, используемое для определения лямбда-функций.arguments— это список параметров, который может содержать ноль или более параметров, но должен стоять перед двоеточием (:), указанным ранее.expression— это выражение, используемое для вычисления и возврата результата функции.
Следующая лямбда-функция не имеет параметров:
Пример
Результат вывода:
Hello, world!
В следующем примере используется lambda для создания анонимной функции, задаётся параметр функции a, функция вычисляет параметр a плюс 10 и возвращает результат:
Пример
Результат вывода:
15
Лямбда-функция также может иметь несколько параметров, при этом параметры разделяются запятыми,разделены:
В следующем примере используется lambda для создания анонимной функции, параметры функции a и b перемножаются, и возвращается результат:
Пример
Результат вывода:
30
В следующем примере используется lambda для создания анонимной функции, параметры функции a, b и c складываются, и возвращается результат:
Пример
Результат вывода:
13
Лямбда-функции обычно используются вместе со встроенными функциями, такими как map(), filter() и reduce(), для выполнения операций над коллекциями. Например:
Пример
Результат вывода:
[1, 4, 9, 16, 25]
Используйте лямбда-функцию с filter() для фильтрации чётных чисел:
Пример
Результат вывода:
[2, 4, 6, 8]
Далее показано, как использовать reduce() и lambda-выражение для вычисления накопленного произведения последовательности:
Пример
Результат вывода:
120
В приведенном выше примере функция reduce() перебирает список numbers и использует lambda-функцию для непрерывного обновления накопленного результата, в конечном итоге получая1 * 2 * 3 * 4 * 5 = 120результат.
Другие расширения