Освоение искусства анонимных функций в Python

Лямбда-функция Python — это небольшая анонимная функция, которая может принимать любое количество аргументов, но может иметь только одно выражение. Синтаксис лямбда-функции:

lambda arguments: expression

Например, следующая лямбда-функция принимает два аргумента (x и y) и возвращает их сумму: lambda x, y: x + y

Вы можете присвоить лямбда-функцию переменной, а затем использовать эту переменную как функцию:

add = lambda x, y: x + y
result = add(2, 3)
print(result) # prints 5

Лямбда-функции часто используются в сочетании с функциями более высокого порядка, такими как filter(), map() и reduce(). Например, вы можете использовать функцию filter() для фильтрации списка чисел и возврата только четных чисел:

numbers = [1, 2, 3, 4, 5, 6]
evens = filter(lambda x: x % 2 == 0, numbers)
print(list(evens)) # prints [2, 4, 6]

Вы также можете использовать лямбда-функции внутри других функций, таких как метод sort() для сортировки списка объектов на основе определенного атрибута:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 35)]
people.sort(key=lambda x: x.age)
for person in people:
    print(person.name)

Он будет отображать имена людей, отсортированные по возрасту в порядке возрастания.

Имейте в виду, что лямбда-функции ограничены только одним выражением и должны использоваться только при определении небольших одноразовых функций. В общем, вы должны использовать обычные именованные функции для более сложной логики.