Lambda expressions (лямбда вирази) – це короткий спосіб створення функцій (lambda functions), що є анонімними (тобто безіменні), та зазвичай створюються прямо в місці їх використання.

Вони мають простий і компактний синтаксис:

lambda arguments: expression

В Python lambda функції можуть бути корисні, коли потрібна проста функція для одноразового використання, і визначати її через стандартний синтаксис def не є доцільним.

Приклади використання

Приклад lambda виразу, котрий визначає просту lambda функцію, що складає два числа:

add = lambda x, y: x + y

print(add(2, 3))  # 5

lambda з функцією map

В цьому прикладі функція map застосовує lambda вираз до всіх елементів списку:

numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, numbers))

print(squares)  # [1, 4, 9, 16]

lambda з функцією filter

Приклад функції filter, що використовує лямбда вираз для фільтрації елементів списку:

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

print(even_numbers)  # [2, 4, 6]

lambda з функцією sorted

lambda вираз можна використовувати для сортування складних структур даних, таких як списки кортежів. Наприклад відсортуємо список студентів за віком:

students = [('Alice', 25), ('Bob', 20), ('Charlie', 23)]
sorted_students = sorted(students, key=lambda student: student[1])

print(sorted_students)
# [('Bob', 20), ('Charlie', 23), ('Alice', 25)]

lambda вирази в Python нерідко використовуються в якості ключових функцій, для функцій сортування, пошуку максимального/мінімального значення, та інших високорівневих операцій.

Ще один приклад сортування, цього разу списку рядків за їхньою довжиною:

words = ['apple', 'banana', 'cherry', 'kivi']
sorted_words = sorted(words, key=lambda word: len(word))

print(sorted_words)
# ['kiwi', 'apple', 'banana', 'cherry']

Деякі обмеження та недоліки використання lambda виразів

  • lambda можуть містити лише один вираз
  • можуть виникнути складнощі з налагодженням, оскільки вони не мають ім’я, і часто оголошуються та використовуються на місці
  • використання в місці створення може іноді погіршити читабельність коду
  • якщо використовуються недоречно, можуть погіршити читабельність коду
  • не підходять для складних логік

Переваги використання lambda виразів

  • компактність і простота
  • підходять для визначення одноразових функцій
  • добре інтегруються з функціями вищого порядку, такими як map, filter і sorted

Мітки: