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 подскажет развёрнутый ответ в реальном времени.