Анонимный функции в Python

Обложка к статье "Анонимные функции (лямбда-функции) в Python"

В Python анонимные функции, известные как лямбда-функции, позволяют создавать небольшие, одноразовые функции без имени. Они особенно полезны в ситуациях, когда требуется простая функция для кратковременного(разового) использования, и её определение традиционным способом может быть избыточным. В этой статье мы рассмотрим, как создавать и использовать анонимные функции в Python.

Что такое лямбда-функция?

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

Синтаксис лямбда-функции

lambda arguments: expression

 

  • lambda — ключевое слово, обозначающее создание лямбда-функции.
  • arguments — список параметров, которые принимает функция.
  • expression — выражение, которое вычисляется и возвращается.

Пример

Создадим лямбда-функцию, которая возвращает квадрат числа:

square = lambda x: x ** 2
print(square(5))  # Вывод: 25

Использование лямбда-функций

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

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

Функция map()

Функция map() применяет заданную функцию ко всем элементам последовательности и возвращает итератор с результатами.

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers))  # Вывод: [1, 4, 9, 16, 25]

Функция filter()

Функция filter() возвращает итератор, состоящий из элементов, для которых заданная функция возвращает True.

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # Вывод: [2, 4, 6]

Функция sorted()

Функция sorted() сортирует элементы последовательности по заданному ключу.

students = [("Alice", 85), ("Bob", 75), ("Charlie", 95)]
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)
# Вывод: [('Bob', 75), ('Alice', 85), ('Charlie', 95)]

Лямбда-функции и функции высшего порядка

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

Пример

Создадим функцию высшего порядка, которая принимает функцию и список, и применяет эту функцию ко всем элементам списка:

def apply_function(func, data):
    return [func(item) for item in data]

numbers = [1, 2, 3, 4, 5]
result = apply_function(lambda x: x ** 3, numbers)
print(result)  # Вывод: [1, 8, 27, 64, 125]

Когда использовать лямбда-функции?

Лямбда-функции полезны в следующих ситуациях:

  1. Когда нужна простая функция для одноразового использования.
  2. Когда использование обычной функции с def выглядит громоздким.
  3. В комбинации с функциями высшего порядка для краткости и удобства.

 

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий