Автор оригинала: Pankaj Kumar.
Python Lambda – анонимная функция
- Функция Python Lambda или Anonymous Python не имеет имя.
- Мы можем определить анонимную функцию, используя лямбда Зарезервировано ключевое слово Отказ
- Анонимная функция Case ограничена Текущий объем где он определен.
- Лямбда Функция может иметь один или несколько аргументов, но он может иметь Только одно выражение Отказ
- Выражение оценивается, и результат возвращается из функции лямбда.
- Функции лямбда обычно используются с картой (), фильтром () и уменьшениями ().
Python Lambda Функциональный синтаксис
Синтаксис функции лямбда:
lambda arguments : expression
Пример анонимных функций Python
Допустим, у нас есть функция, чтобы получить область прямоугольника.
def area_of_rectangle(l, w): return l * w print(f'Area of Rectangle (4, 5) is {area_of_rectangle(4, 5)}')
Давайте создадим анонимную функцию, используя ключевое слово lambda, чтобы получить область прямоугольника.
rectangle_area = lambda x, y: x * y print(f'Area of Rectangle (4, 5) is {rectangle_area(4, 5)}')
Когда использовать анонимную функцию?
- Для небольших тривиальных задач с не очень сложностью.
- Когда функция имеет только одно выражение.
- Для повторяющихся задач, которые являются временными по своей природе.
- Когда вы хотите, чтобы области функции будет ограничен только текущим объемом.
- Это полезно, когда аргумент функции является другой функцией, такой как MAP (), FILTER () и SENDECT ().
Функция лямбда с картой ()
Функция MAP () принимает функцию и, как и аргументы. Функция применяется к каждому элементу в указанном элементе, и возвращается обновленным Iterable.
Скажем, у нас есть список целых чисел. Мы должны создать новый список, умножая каждый элемент с 10. Мы можем использовать функцию лямбда здесь, а не создавать функцию для этого одноразового корпуса.
list_numbers = [1, 2, 3, 4] list_numbers = map(lambda x: x * 10, list_numbers) for num in list_numbers: print(num, end=" ")
Выход:
Лямбда функция с фильтром ()
Функция встроенного фильтра () принимает функцию и, как и аргумент. Функция применяется к каждому элементу счетчика. Если функция возвращает TRUE, элемент добавляется к возвращенному указанному.
Допустим, у нас есть список целых чисел, и мы хотим удалить все нечетные номера. Окончательный список должен иметь только даже целые числа. Мы можем использовать функцию фильтра () здесь с функцией лямбда.
list_numbers = [1, 2, 3, 4, 5, 6] list_numbers = filter(lambda x: x % 2 == 0, list_numbers) for num in list_numbers: print(num, end=" ")
Лямбда функция с уменьшением ()
Функция уменьшения () присутствует в Functools модуль. Эта функция принимает функцию и последовательность в качестве аргумента. Функция должна принимать два аргумента. Элементы из последовательности передаются в функцию наряду с совокупным значением. Окончательный результат является одно значение.
Допустим, у нас есть список целых чисел, и мы хотим получить сумму всех его элементов. Мы можем использовать функцию Undere () здесь с функцией лямбда.
from functools import reduce list_ints = [1, 2, 3, 4, 5, 6] total = reduce(lambda x, y: x + y, list_ints) print(f'Sum of list_ints elements is {total}')
Python Lambda функция без аргументов
Кто-то спросил меня, если у нас может быть функция лямбда без какого-либо аргумента?
Да, мы можем определить функцию лямбда без какого-либо аргумента. Но, это будет бесполезно, потому что не будет никакого для работы. Давайте посмотрим на простой пример.
get_5 = lambda: 5 print(get_5()) # 5
Поскольку функция лямбда всегда возвращает одинаковое значение, мы можем просто назначить ее переменной. Использование функции лямбда без какого-либо аргумента – это просто злоупотребление этой функцией.
Заключение
Анонимные функции Python созданы с помощью ключевого слова lambda. Они полезны, когда аргумент функции является другой функцией. Он в основном используется для создания простых функций утилиты для одноразового использования.