Lambda expressions (лямбда вирази) – це короткий спосіб створення функцій (lambda functions), що є анонімними (тобто безіменні), та зазвичай створюються прямо в місці їх використання.
Вони мають простий і компактний синтаксис:
lambda arguments: expressionВ Python lambda функції можуть бути корисні, коли потрібна проста функція для одноразового використання, і визначати її через стандартний синтаксис def не є доцільним.
Приклади використання
Приклад lambda виразу, котрий визначає просту lambda функцію, що складає два числа:
add = lambda x, y: x + y
print(add(2, 3)) # 5lambda з функцією 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