Функция-лямбда в Python

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

Что такое функция?

Функция в python – это группа операторов, которые используются для выполнения атомарной задачи. Функция может принимать ноль или более аргументов, а также может возвращать значение или объект.

Например, функция square() принимает число в качестве входного аргумента и возвращает его квадрат в качестве выходного значения:

def square(n):
    return n ** 2

Можете заметить, что мы определили функцию с помощью оператора def. Функция-лямбда определяется с помощью оператора lambda.

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

Лямбда-функция похожа на обычную функцию. Однако у неё есть некоторые ограничения.

Обычная функция может содержать несколько операторов, цикл while, оператор if-else и другие программные конструкции для выполнения любой задачи. Лямбда-функция же может иметь только один оператор.

Мы определяем лямбда-функцию, используя ключевое слово lambda. Синтаксис для объявления лямбда-функции выглядит следующим образом.

myFunction = lambda [arguments]: expression

“myFunction” – это имя лямбда-функции, которая будет создана с помощью этого оператора.
“лямбда” – ключевое слово, используемое для определения лямбда-функции.
“Аргументы” – параметры лямбда-функции. Здесь мы сохранили “аргументы” в квадратных скобках [], поскольку лямбда-функция может иметь или не иметь входные аргументы.
“выражение” обычно представляет собой математическое выражение или вызов функции, такой как print().

Как ей пользоваться?

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

square = lambda n: n ** 2
print("Square of 4 is: ", square(4))

Вывод:

Square of 4 is:  16

Также мы можем уменьшить избыточность в коде. Предположим, вам нужно вычислить квадрат четырех чисел и вывести их квадраты один за другим:

def square(n):
    return n ** 2


print("Square of {} is:{} ".format(4, square(4)))
print("Square of {} is:{} ".format(3, square(3)))
print("Square of {} is:{} ".format(5, square(5)))
print("Square of {} is:{}".format(10, square(10)))

Вывод:

Square of 4 is:16 
Square of 3 is:9 
Square of 5 is:25 
Square of 10 is:100

Можете заметить, что операторы печати приводят к тому, что код становится избыточным. В таких случаях мы можем создать лямбда-функцию, которая принимает входные аргументы, передаваемые методу format() в функции печати. Затем мы можем использовать эту лямбда-функцию для удаления избыточности в коде:

def square(n):
    return n ** 2


print_square = lambda x, y: print("Square of {} is:{} ".format(x, y))
print_square(4, square(4))
print_square(3, square(3))
print_square(5, square(5))
print_square(10, square(10))

Вывод:

Square of 4 is:16 
Square of 3 is:9 
Square of 5 is:25 
Square of 10 is:100 

Заключение

В этой статье мы обсудили лямбда-функции в Python.

Ответить