Функция-лямбда в 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.