⚠️ Типичные ошибки

⚡ Кратко: ошибки

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

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

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

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

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

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

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

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

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

operations('sum') вместо operations['sum']

Словарь вызывается как функция, если использовать круглые скобки.

Для доступа по ключу используйте квадратные скобки.

operations = {"sum": lambda x, y: x + y, "mul": lambda x, y: x * y}
print(operations["sum"](2, 3))
print(operations["mul"](2, 3))

Передача square(5) вместо square

square(5) сразу возвращает число, а apply_function ждёт функцию.

Передавайте square без скобок.

def square(x):
    return x * x

def apply_function(func, value):
    return func(value)

print(apply_function(square, 5))

Слишком сложная lambda

Длинная lambda с несколькими условиями плохо читается.

Вынесите критерий в именованную функцию.

def order_key(person):
    name, age = person
    return -age, name

people = [("Mike", 19), ("Nancy", 35)]
print(sorted(people, key=order_key))