Область эффективного использования lambda функции в Python

Опубликован: 17.12.2023 50

Lambda функция в Python — это специальный упрощенный вид функции без имени (анонимной), имеющей ограниченные возможности по сравнению с обычной функцией def:

  • Lambda функция определяется в одной строке кода, в отличие от обычной функции, которая может содержать любое количество строк;
  • Lambda функция полезна как одноразовая функция, поскольку она не имеет своего имени и не может быть вызвана из любой части программы.

Синтаксис: lambda arguments: expression

  • arguments — аргументы функции, разделенные запятыми (аргументы могут отсутствовать);
  • expression — выражение (или значение), возвращаемое функцией.

Учитывая специфические особенности lambda функции, ее часто используют в качестве аргумента других функций (так называемых функций высшего порядка: map(), filter(), reduce() и др. ).

В этом есть смысл, если нужна одноразовая функция с одним выражением или одним возвращаемым значением, которая больше не будет использоваться в коде. Тогда вместо определения обычной функции def можно упростить код с помощью быстрого определения lambda функции прямо внутри функции высшего порядка.

Примеры использования lambda функции.

# использование lambda с конструкцией if ... else
value = lambda x: x + 10 if x % 2 == 0 else x + 5
print(value(7))
12
print(value(8))
18

# использование lambda с функцией map()
numbers = [ 1, 2, 3, 4, 5 ]
squared = list(map(lambda num: num ** 2, numbers))
print(squared)
[1, 4, 9, 16, 25]

# использование lambda с функцией filter()
list_num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list_even = list( filter( lambda x: x % 2 == 0, list_num ) )
print(list_even)
[0, 2, 4, 6, 8, 10]

# использование lambda с функцией reduce()
from functools import reduce

list_num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
factorial = reduce(lambda x, y: x * y, list_num)
print(factorial)
3628800

# использование lambda для сортировки словаря по значениям
good_prices = {"бананы": 130, "сливы": 125, "арбуз": 50, "лимоны": 95}
print( dict( sorted( good_prices.items(), key=lambda x: x[1] ) ) )
{'арбуз': 50, 'лимоны': 95, 'сливы': 125, 'бананы': 130}

Таким образом, lambda функции являются удобным и эффективным инструментом программиста, который может использоваться для упрощения и повышения читабельности кода.

Похожие посты

Оценка основных статистических метрик набора данных в Python

Логические выражения if ... else в Pythonic стиле

Способы удаления лишних пробелов в строке

Использование аннотации типов в Python

Комментариев нет.