Что такое лямбда-выражение в Python?

Лямбда-выражение в Python - это анонимная функция, определяемая "на лету" с помощью ключевого слова lambda. Она принимает любое количество аргументов, но может содержать только одно выражение. Часто используется для создания простых функций, передаваемых в качестве аргументов другим функциям (например, map, filter, sorted). Пример: lambda x, y: x + y (функция, возвращающая сумму двух аргументов).

Лямбда-выражение в Python – это анонимная функция, то есть функция, не имеющая имени. Оно определяется с помощью ключевого слова lambda и может принимать любое количество аргументов, но возвращает только одно выражение. Лямбда-выражения полезны для создания простых, коротких функций, которые используются один раз или передаются в качестве аргументов другим функциям, например, в map(), filter() или sorted().

Синтаксис:

lambda arguments: expression

Где:

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

Примеры:

Простейший пример:


  # Лямбда-функция, возвращающая сумму двух чисел
  add = lambda x, y: x + y
  print(add(5, 3))  # Вывод: 8
  

Использование с map():


  numbers = [1, 2, 3, 4, 5]

  # Умножаем каждый элемент списка на 2 с помощью лямбда-функции
  squared_numbers = list(map(lambda x: x * 2, numbers))
  print(squared_numbers)  # Вывод: [2, 4, 6, 8, 10]
  

Использование с filter():


  numbers = [1, 2, 3, 4, 5, 6]

  # Фильтруем список, оставляя только четные числа с помощью лямбда-функции
  even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
  print(even_numbers)  # Вывод: [2, 4, 6]
  

Использование с sorted():


  points = [(1, 2), (3, 0), (0, 8), (5, 1)]

  # Сортируем список точек по второму элементу (y-координате)
  sorted_points = sorted(points, key=lambda point: point[1])
  print(sorted_points) # Вывод: [(3, 0), (5, 1), (1, 2), (0, 8)]
    

Важные моменты:

  • Лямбда-выражения могут содержать только одно выражение. Они не могут содержать операторы присваивания, циклы или несколько выражений.
  • Лямбда-выражения могут захватывать переменные из окружающей области видимости (closure).
  • Не стоит злоупотреблять лямбда-выражениями для сложных операций. В таких случаях лучше определить обычную функцию с именем для лучшей читаемости кода.
  • Лямбда-выражения - это синтаксический сахар для создания функций "на лету".
0