⚖️ Старый подход и современная практика

⚡ Кратко: old-vs-new

Функцию передают без скобок: square, а не square().

Lambda - короткая анонимная функция из одного выражения.

Функции высшего порядка принимают или возвращают другие функции.

map() преобразует элементы, filter() отбирает элементы, reduce() сводит коллекцию к одному значению.

any() возвращает True при хотя бы одном истинном элементе.

all() возвращает True, если все элементы истинны; для пустой коллекции это True.

sorted(), min() и max() принимают key-функцию для критерия сравнения.

Сложную lambda лучше заменить именованной функцией def.

Топ-3 ошибки: передать результат функции вместо ссылки; забыть list() вокруг map/filter; писать слишком сложную lambda вместо понятной функции.

Учебный/наивный подходСовременный вариантПочему так
Создавать lambda ради любого куска логики.Использовать lambda только для коротких выражений; сложную логику выносить в def.Именованная функция легче читается и тестируется.
Печатать map/filter напрямую.Преобразовывать итератор в list() для вывода или обходить в цикле.map/filter ленивые и сами по себе не показывают элементы.
Сортировать кортежи ручными вложенными циклами.sorted(items, key=lambda item: item[1]).key выражает критерий сортировки напрямую.
Проверить по документации: рекомендации по стилю и стандартной библиотеке могут уточняться в новых версиях Python.