Лямбда-функции и анонимные функции в Python: синтаксис и примеры использования
В Python функции являются объектами первого класса, что означает, что они могут быть переданы как аргументы в другие функции и возвращаться в качестве результата выполнения других функций.
Однако, определение функций может быть довольно громоздким и занимать много места в коде. Для уменьшения объема кода в Python существует возможность определять анонимные функции с помощью лямбда-выражений.
Лямбда-выражения
Лямбда-выражение - это способ определения анонимной функции в Python. Оно представляет собой однострочное выражение, которое возвращает значение функции.
Лямбда-выражение имеет следующий синтаксис:
lambda аргументы: выражение
Например, определим лямбда-функцию, которая возвращает квадрат числа:
square = lambda x: x ** 2
print(square(5)) # 25
В этом примере мы определяем лямбда-функцию, которая принимает аргумент x
и возвращает его квадрат. Затем мы вызываем эту функцию и передаем ей аргумент 5.
Анонимные функции
Анонимные функции - это функции, которые не имеют имени. Они могут быть определены с помощью лямбда-выражений. Обычно анонимные функции используются там, где требуется определить функцию один раз и использовать ее только внутри одной функции или выражения.
Например, мы можем использовать анонимную функцию внутри функции sorted()
для сортировки списка по длине элементов:
my_list = ['apple', 'banana', 'cherry', 'date']
sorted_list = sorted(my_list, key=lambda x: len(x))
print(sorted_list) # ['date', 'apple', 'banana', 'cherry']
В этом примере мы используем лямбда-выражение для определения анонимной функции, которая принимает аргумент x и возвращает длину строки x
. Затем мы передаем эту анонимную функцию в качестве аргумента key
функции sorted()
, которая сортирует список my_list по длине элементов.
Заключение
Лямбда-функции и анонимные функции - это способы определения функций в Python, которые позволяют уменьшить объем кода и сделать его более читаемым. Лямбда-выражения представляют собой одно из мощнейших инструментов в Python.