Вопрос13
Осталось:

Что такое анонимная функция?

Образцовый ответ

Показывать ответ по умолчанию

Lambda — это анонимная (безымянная) функция, определяемая в одну строку. Она может принимать любое количество аргументов, но содержит только одно выражение.

Синтаксис:

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

# Эквивалентная lambda
square = lambda x: x ** 2

square(5)  # 25

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

users = [
    {"name": "Анна", "age": 25},
    {"name": "Борис", "age": 30},
    {"name": "Вера", "age": 20},
]

# Сортировка по возрасту
sorted_users = sorted(users, key=lambda u: u["age"])

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

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

squares = list(map(lambda x: x ** 2, numbers))
# [1, 4, 9, 16, 25]

evens = list(filter(lambda x: x % 2 == 0, numbers))
# [2, 4]

Ограничения:

  • Только одно выражение — нельзя использовать многострочную логику, циклы или присваивания.
  • Снижает читаемость при сложных выражениях — лучше использовать обычную функцию.
  • Нет имени — сложнее отлаживать (в traceback отображается как <lambda>).