Лямбда функция / Анонимная функция Python, что это такое?
Мы не плохо уже владеем функциями, но пока еще не стали гуру, и не знаем многих нюансов. Сегодня у нас на связи Лямбда функция. В этой статье, мы рассмотрим синтаксис этой функции, как им пользоваться, и разберем примеры.
Лямбда/lambda — функция в python, которая определяется без имени. Обычно, функции определяем через ключевое слово def. А lambda — определяется с помощью одноименного ключевого слова lambda.
Синтаксис lambda функции
lambda = arguments: выражение
lambda функция может иметь любое количество аргументов, но только с одним выражением, и может использоваться в любом месте, где требуется объект функции.
Пример lambda функции
double = lambda x: x * 2 print(double(5)) Результат : 10
В приведенном примере, мы видим что у нас есть идентификатор double, сама lambda функция с аргументом x, и выражение x *2. Как мы видим у функции нет имени, а вычисляемый и возвращаемый результат присваивается идентификатору double. Рассмотрим тоже самое выражение в виде обычной функции:
def double(x): return x * 2
По сути это тоже самое выражение, что и с примером с lambda функцией.
Использование lambda функции в Python
В python вы можете часто видеть такое, что lambda функцию часто используют вместе с другими функциями, такими как filter(), или map().
Пример использование с filter()
Функция filter() в python, в качестве аргументов принимает функцию, и список. filter() принимает элементы в списке, и возвращает новый список, для элементов которых он выполняет TRUE вычисление. Ниже рассмотрим пример filter() функции, для фильтрации четных чисел из приведенного списка.
my_list = [1, 5, 4, 6, 8, 11, 3, 12] #Входной список new_list = list(filter(lambda x: (x%2 == 0) , my_list)) #обрабатываем (вспоминаем про операторы вычислений) print(new_list) #Печатаем новый список Результат: [4,6,8,12]
Пример использования map()
Функция map(), так же как и filter() принимает в качестве аргументов функцию и список. Функция maps(), так же как и в предыдущем примере, возвращает новый список, содержащий элементы, которые отвечают условиям нашего выражения.
my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(map(lambda x: x * 2 , my_list)) print(new_list) Результат: [2,10,8,12,16,22,6,24]