← Назад к вопросам
Для каких задач лучше использовать Lambda функцию
1.0 Junior🔥 241 комментариев
#Python Core
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Lambda функции в Python
Lambda функции — это анонимные функции малого объёма, которые вычисляют и возвращают одно значение. Определяются синтаксисом lambda аргументы: выражение.
Основные задачи для Lambda
1. Аргументы к функциям высшего порядка
Это главное применение lambda. Используются как колбэки в map(), filter(), sorted():
# map() — преобразование списка
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25]
# filter() — фильтрация
evens = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
# sorted() с кастомным ключом
students = [("Alice", 25), ("Bob", 20), ("Charlie", 23)]
sorted_by_age = sorted(students, key=lambda x: x[1]) # сортировка по возрасту
2. Сортировка и группировка по сложным ключам
products = [
{"name": "Laptop", "price": 1000, "stock": 5},
{"name": "Mouse", "price": 25, "stock": 100}
]
# Сортировка по нескольким параметрам
sorted_products = sorted(products,
key=lambda p: (-p["stock"], p["price"]))
3. Использование в словарях и операциях с данными
from functools import reduce
# reduce() для сворачивания списка
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers) # 120
# Dictionary comprehension с условием
data = {"a": 1, "b": 2, "c": 3}
filtered = {k: v for k, v in filter(lambda item: item[1] > 1, data.items())}
Когда НЕ использовать Lambda
- Сложная логика — если функция содержит много строк кода, используй
def - Множественные выражения — lambda поддерживает только одно выражение
- Код для переиспользования — назови функцию и определи через
def - Отладка — в stack trace lambda покажется как
<lambda>, что затруднит отладку
# ❌ Плохо — сложно читать и отлаживать
result = list(map(lambda x: x ** 2 if x % 2 == 0 else x * 3, numbers))
# ✅ Хорошо — понятная функция
def transform(x):
if x % 2 == 0:
return x ** 2
return x * 3
result = list(map(transform, numbers))
Производительность
Lambda работает так же быстро, как обычная функция. Различия в производительности незначительны, поэтому выбор основан на читаемости кода.
Правило большого пальца
Используй lambda, если:
- Функция — это один простой выражение
- Используется один раз как аргумент другой функции
- Код остаётся читаемым
Используй def, если:
- Функция сложнее одной строки
- Функция используется в нескольких местах
- Нужна отладка по имени функции