Easylambda

Что такое lambda в Python?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

lambda — анонимная функция в одном expression. Не может иметь statements, нет имени, нет docstring.

# Простой пример
f = lambda x, y: x + y
f(2, 3)   # 5
# эквивалентно: def f(x, y): return x + y

# key-функция в sort
students = [{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 22}]
sorted(students, key=lambda s: s['age'])

# Ловушка позднего binding в цикле
funcs = [lambda: i for i in range(3)]
funcs[0]()   # 2 (последний i), не 0
# Решение: lambda i=i: i  (default arg binding)
  • В современном Python comprehension чаще: [x*2 for x in lst] вместо map(lambda...;
  • operator.itemgetter('key'), attrgetter('name') — замена лямбд;
  • Применения: callback, key-функции в sort/min/max.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.