Как использовать функции Python Lambda: 5-минутное руководство

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? Бессерверные вычисления для разработчиков программного обеспечения
Оцените статью
nanomode.ru
Добавить комментарий