Python имеет множество функций для реализации концепций функционального программирования. При написании программ функционального стиля часто требуются небольшие функции, объединяющие элементы. В Python есть встроенный способ сделать это с помощью лямбда-функций.
В компьютерном программировании анонимная функция (например, лямбда-выражение) не является функцией привязан к идентификатору. Лямбда-функции — важная часть функционального программирования, позволяющая писать одноразовые функции без необходимости называть их.
В этом руководстве по Python мы познакомим вас с лямбда-функциями. в Python и покажем, как реализовать их в вашем собственном коде.
Сегодня мы узнаем:
- Что такое лямбда-функции
- Когда использовать лямбда-функции
- Как реализовать лямбда-функции Python
- Лямбда-функции Python примеры
- Попробуйте сами
- Что узнать дальше
- Узнайте, как реализовать функциональное программирование
- Что такое лямбда-функции?
- Когда использовать лямбда-функции
- Продолжайте обучение.
- Как реализовать лямбда-функции Python
- Примеры лямбда-выражений Python
- Функция возведения в квадрат
- Функция вычитания
- Карта с лямбда
- Фильтр с лямбда
- Попробуйте сами
- Что узнать дальше
- Продолжить чтение о функциональном программировании и Python
Узнайте, как реализовать функциональное программирование
В этом курсе вы узнаете, что такое функциональное программирование и как оно используется в Python. К концу у вас будет новая парадигма программирования.
Изучите функциональное программирование на Python
Что такое лямбда-функции?
Лямбда-функция — это небольшая анонимная функция , которая принимает любое количество аргументов, но имеет только одно выражение. Лямбда-функции возвращают объект, который назначен переменной или используется как часть других функций.
Лямбда-выражения отличаются от определений обычных функций несколькими способами. В частности, лямбда-функции ограничены одиночным выражением , поэтому они не могут использовать операторы или аннотации.
Когда дело доходит до возвращаемых значений из лямбда-выражений, там всегда является неявным оператором возврата . Лямбда-функции оценивают выражение и автоматически возвращают результат.
Вот почему некоторые программисты называют лямбда-выражения «функциями одного выражения» .
Лямбда-функции не требуется имя во время определения функции, в отличие от обычной функции. Мы создаем их с помощью ключевого слова lambda
вместо традиционного ключевого слова def
. Структуру лямбда можно увидеть ниже:

История: Лямбда-выражения происходят от концепций лямбда-исчисления, модели вычислений, изобретенной Церковь Алонсо.
Хотя Python не является полностью функциональным языком, он добавил много функциональных концепций . В 1994 году filter ()
, map ()
, reduce ()
и лямбда В его синтаксис добавлен оператор
. Другие объектно-ориентированные языки программирования, такие как Java и JavaScript, также добавили лямбда-выражения в более поздних версиях.
Когда использовать лямбда-функции
У лямбда-функций есть десятки вариантов использования, но они наиболее часто используются когда требуются функциональные объекты . Прелесть лямбда-функций в том, что они возвращают функциональные объекты.
Это делает их полезными при использовании вместе с функциями более высокого порядка, которым требуются функциональные объекты в качестве аргументов, например map ()
, filter ()
или functools.reduce()
Лучше всего использовать лямбды, когда выражение функции маленькое для облегчения чтения. Рекомендуется использовать лямбда-функции, когда они обеспечивают кратчайший способ записи или вычисления чего-либо , например, когда:
- Возвращение функция из функции
- Сортировка по альтернативному ключу
- Объединение элементов повторяемой последовательности с помощью
reduce()
Когда вы привыкнете к лямбда-выражениям, вы начнете их довольно часто использовать. Они выразительны и при правильном использовании делают код короче и читабельнее. Чтобы максимально использовать лямбда-выражения, следуйте этим общим рекомендациям:
- Лямбда-выражения могут содержать только одно выражение. Если ваша функция не может быть выражена в одной строке, не используйте лямбда.
- Лучше использовать их только для короткого и простого кода, где поведение функции очевидно.
- Если при вызове функции используется несколько лямбда-выражений, может быть трудно увидеть, что происходит, и это не рекомендуется.
- Если одна и та же функция используется в нескольких местами обычно лучше определить обычную функцию, чем повторять лямбда.
Продолжайте обучение.
Изучите лямбда-выражения в Python, не просматривая видео или документация. Текстовые курсы Educative легко просматривать и содержат среду программирования в реальном времени, что делает обучение быстрым и эффективным.
Изучите функциональное программирование на Python
Как реализовать лямбда-функции Python
Лямбда-функция объявляется иначе, чем обычная функция. В Python лямбда-функции обладают следующими уникальными характеристиками:
- Они могут содержать только выражения
- Они не могут включать инструкции в свое тело
- Он записывается в одну строку
- Он не поддерживает аннотации типов
- Его можно сразу вызвать
Лямбда-функция в Python использует следующий базовый синтаксис. Как мы упоминали ранее, мы используем ключевое слово lambda
для создания простой функции в выражении Python.
лямбда-аргументы: выражение
Лямбда-выражение может иметь любое количество аргументов (включая ни одного). Например:
lambda: 1 # Без аргументов lambda x, y: x + ylambda a, b, c, d: a * b + c * d
В следующем примере мы используем лямбда-функцию для замены функции площади:
lambda x: x [0] * x [1]
Ключевое слово lambda
определяет лямбда-выражение. В приведенном выше примере x
— единственный параметр. Двоеточие завершает список параметров и вводит тело функции.
Чтобы правильно использовать это выражение, поместите его везде, где вы обычно можете использовать объект функции. Этот фрагмент кода ниже создает временный анонимный функциональный объект и передает его в отсортированную функцию, которая затем выполняет сортировку.
p = [(3, 3), (4, 2), (2, 2), (5, 2 ), (1, 7)] q = sorted (p, key = lambda x: x [0] * x [1]) print (q) # [(2, 2), (1, 7), (4, 2), (3, 3), (5, 2)]
Примечание. Лямбда-функции не имеют имен , но если вы действительно хотите, вы можете присвоить его переменной, как показано ниже:
area = lambda x: x [0] * x [1]
Т здесь нет явного преимущества добавления имени функции к лямбда-функции.
Примеры лямбда-выражений Python
Теперь, когда мы понимаем, как лямбда-функции работают в Python, давайте закрепим наши знания с еще несколькими примерами и вариантами использования.
Функция возведения в квадрат
# Возведение в квадрат лямбда-функцийquare = lambda n: n * nnum = square (5) print num
Функция вычитания
# Лямбда-функция вычитания с несколькими аргументами sub = lambda x, y: x-yprint (sub (5, 3))
iv>
Карта с лямбда
Лямбда в Python делает функцию map
намного более лаконичной.
- Lambda
- Лямбда
- Лямбда
- Обычный
- Обычный
myList = [10, 25, 17, 9, 30, -5] # Удвойте значение каждого elementmyList2 = map (lambda n: n * 2, myList) print myList2
Фильтр с лямбда
Лямбды также могут упростить filter ()
функция.
- Lambda
- Lambda
- Lambda
- Обычный
- Обычный
myList = [10, 25, 17, 9, 30, -5] # Фильтрует элементы, не кратные 5myList2 = filter (lambda n: n% 5 == 0, myList) print myList2
Попробуйте сами
Давайте применим то, что мы узнали до сих пор, к двум практическим примерам онг>. Сначала напишите кусок кода, используя лямбда-выражение, которое добавляет 10 к аргументу a
и возвращает результат. Вы можете выбрать любое значение для a
. Попробуйте сами, прежде чем проверять решение.
x = # введите здесь свой код print # введите свой код здесь
Для другого действия используйте лямбда, чтобы умножить a
на аргумент b
и вернуть результат. Вы можете выбрать числа муравьев для умножения при печати. Попробуйте сами, прежде чем проверять решение.
x = # напишите здесь свой код print # напишите здесь свой код
Что узнать дальше
Поздравляем! Теперь вы должны хорошо понимать лямбда-выражения в Python. Вы можете начать реализовывать их в своем собственном коде. Когда дело доходит до функционального программирования на Python, есть еще чему поучиться! Далее вы должны проверить:
- Функции высшего порядка с лямбда
- Модуль functools
- Декораторы и замыкания
- Псевдонимы в Python
- и др.
Чтобы начать работу с функциональным программированием на Python, ознакомьтесь с учебным курсом Изучение функционального программирования на Python . В этом курсе вы узнаете, что такое функциональное программирование, как оно используется в Python. У вас будет все: от лямбда-выражения до рекурсии до генераторов и т. Д.
К концу вы будете уверены, что сможете использовать функциональное программирование в своих проектах.
Удачного обучения!
Продолжить чтение о функциональном программировании и Python
- Что такое функциональное программирование? Объяснено на Python, JS и Java.
- 10 причуд Python, о которых вы должны знать в своем коде
- Что такое AWS Lambda? Бессерверные вычисления для разработчиков программного обеспечения