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))