📝 Python

Lambda функции

P
Автор
PyLand Team
📅
Опубликовано
03.04.2026
⏱️
Время чтения
2 мин
👁️
Просмотров
417
🌿
Уровень
Средний

Lambda — маленькая анонимная функция в одну строку.

# Обычная функция
def double(x):
    return x * 2

# Lambda
double = lambda x: x * 2

double(5)  # 10

Синтаксис

lambda аргументы: выражение
  • lambda — ключевое слово
  • аргументы — параметры (как в def)
  • выражение — результат (одна строка, возвращается автоматически)

Примеры

# Арифметика
add = lambda a, b: a + b
print(add(3, 5))  # 8

square = lambda x: x ** 2
print(square(4))  # 16

is_even = lambda n: n % 2 == 0
print(is_even(10))  # True

# Строки
greet = lambda name: f"Привет, {name}!"
print(greet("Алиса"))  # Привет, Алиса!

# Условие
max_num = lambda a, b: a if a > b else b
print(max_num(10, 20))  # 20

Когда использовать

Lambda удобна внутри других функций — как аргумент key= или вместо коротких вспомогательных функций.

numbers = [5, 2, 8, 1, 9]
sorted_desc = sorted(numbers, key=lambda x: -x)
print(sorted_desc)  # [9, 8, 5, 2, 1]

doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # [10, 4, 16, 2, 18]

even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)  # [2, 8]

Когда НЕ использовать

Сложная логика — читаемость страдает:

# Плохо
check = lambda x: x > 0 and x < 100 and x % 2 == 0 and str(x)[0] != "5"

# Хорошо — обычная функция
def check_number(x):
    if x <= 0 or x >= 100:
        return False
    if x % 2 != 0:
        return False
    return str(x)[0] != "5"

Нужна документация — lambda не поддерживает docstring.

Lambda vs def

Lambda def
Длина Одна строка Любая
Имя Анонимная Обязательно
Docstring
Сложность Только простые выражения Любая

Практические примеры

products = [
    {"name": "Ноутбук", "price": 50000},
    {"name": "Мышка", "price": 500},
    {"name": "Клавиатура", "price": 3000}
]

# Сортировка по цене
cheap_first = sorted(products, key=lambda p: p["price"])
print(cheap_first[0]["name"])  # Мышка

# Найти самый дорогой
most_expensive = max(products, key=lambda p: p["price"])
print(most_expensive["name"])  # Ноутбук

# Слова по длине
words = ["Python", "Go", "JavaScript", "Rust"]
by_length = sorted(words, key=lambda w: len(w))
print(by_length)  # ['Go', 'Rust', 'Python', 'JavaScript']

Распространённые ошибки

Ошибка 1: Несколько строк — нельзя

# Ошибка — lambda только одна строка
calc = lambda x:
    result = x * 2  # SyntaxError
    return result

# Правильно
calc = lambda x: x * 2

Ошибка 2: Присваивание внутри lambda

update = lambda x: x = x + 1  # SyntaxError
# Для этого используйте def

Ошибка 3: Сохранять lambda в переменную

# Плохо — если сохраняете, лучше def
double = lambda x: x * 2
square = lambda x: x ** 2

# Хорошо
def double(x):
    return x * 2

def square(x):
    return x ** 2

Lambda — для одноразового использования внутри другой функции. Если сохраняете в переменную — используйте def.

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Как функции работают вместе в Python 🧩

Небольшая функция обычно решает одну понятную задачу. Но настоящая программа состоит из нескольких задач: получить...

📅 09.08.2026 👁️ 78
📝

map() — Преобразуй каждый элемент!

Функция map() лениво применяет преобразование к каждому элементу итерируемого объекта.

📅 03.04.2026 👁️ 429
📝

filter() — Отбери нужное!

Функция filter() оставляет элементы, для которых проверка возвращает истинное значение.

📅 03.04.2026 👁️ 430
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

API на практике: взаимодействие с любыми сервисами Открыть программу курса