Sobes.tech
Назад к вопросам
Junior — Middle
49

Объясните, что такое анонимные функции в программировании и как они используются?

Компании, где спрашивали
СБЕРСБЕР
МТСМТС
Фабрика РешенияФабрика Решения
СБЕР Центр ИИСБЕР Центр ИИ
Лига Цифровой ЭкономикиЛига Цифровой Экономики
БилайнБилайн

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Анонимная функция — это функция без имени, обычно для короткой логики в месте использования. В Python чаще всего это lambda, когда нужна простая функция на один выражение. Такие функции удобно передавать в sort, map, filter, sorted и похожие API.

Определение:

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

В Python анонимные функции чаще всего реализуются через lambda. Такая функция может содержать только одно выражение и автоматически возвращает его результат.

Пример использования:

numbers = [5, 1, 9, 3]

# Сортировка по убыванию через анонимную функцию
sorted_numbers = sorted(numbers, key=lambda x: -x)

print(sorted_numbers)  # [9, 5, 3, 1]

Еще один типичный пример — фильтрация:

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

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

print(even_numbers)  # [2, 4, 6]

Пояснение кода:

В первом примере sorted() сортирует список numbers. Параметр key получает анонимную функцию lambda x: -x, которая для каждого элемента возвращает его отрицательное значение. Это позволяет отсортировать числа по убыванию.

Во втором примере filter() оставляет только те элементы, для которых функция возвращает True. lambda x: x % 2 == 0 проверяет, является ли число четным. В результате в список попадают только 2, 4, 6.

Ключевые моменты:

  • Анонимные функции используют, когда логика короткая и нужна только в одном месте.
  • В Python основной инструмент для этого — lambda.
  • Такая функция удобна для key=..., map, filter, sorted и похожих операций.
  • lambda в Python ограничена одним выражением, поэтому сложную логику лучше выносить в обычную именованную функцию.
  • Именованная функция обычно лучше для читаемости, повторного использования и тестирования.