Лямбда-функции Python с примерами
Опубликовано: 2022-06-04Python — введение
Python — это чрезвычайно популярный язык программирования общего назначения. Это интерпретируемый язык высокого уровня, который подчеркивает читабельность кода за счет использования значительных отступов. Python используется программистами для написания чистого, логичного кода для проектов любого масштаба.
Python был задуман в 1980-х годах как преемник языка программирования ABC Гвидо Ван Россумом. С тех пор Python остается популярным языком программирования благодаря своей универсальности.
Функции — введение
Функции — это блоки кода, которые работают, когда их можно вызвать в программе n раз. Они представляют собой операторы структурированного кода и выполняют определенную функцию, и их можно использовать в любое время. Функции в основном классифицируются как:
- Пользовательская функция (USF) — настраиваемые функции, которые могут быть изменены в соответствии с требованиями программиста.
- Встроенные функции (BIF) — функции, которые нельзя настроить и которые необходимо использовать так, как они доступны.
Изучите онлайн-курсы по науке о данных на upGrad
Лямбда-функции Python
Функции Python Lambda по существу анонимны, поскольку у них нет определенного имени. Функция def используется для обозначения обычной функции в Python. Между тем, ключевое слово Lambda используется для определения анонимной функции Python.
Лямбда-функция — это небольшая функция, которая может принимать несколько аргументов, но только одно выражение. У них также более строгий, но лаконичный синтаксис, чем у обычных функций Python. Лямбда-функция была добавлена в язык Python в 1994 году вместе с функциями map (), filter () и reduce ().
Ознакомьтесь с нашими программами по науке о данных в США
Программа профессиональных сертификатов в области науки о данных и бизнес-аналитики | Магистр наук в области науки о данных | Магистр наук в области науки о данных | Расширенная программа сертификации в области науки о данных |
Программа Executive PG в области науки о данных | Учебный курс по программированию на Python | Программа профессиональных сертификатов в области науки о данных для принятия бизнес-решений | Продвинутая программа по науке о данных |
Чтобы определить анонимную функцию, нужно использовать ключевое слово lambda подобно тому, как def используется для обычных функций. Анонимная функция, определенная в Python, состоит из трех частей:
- Ключевое слово лямбда
- Параметры или связанная переменная
- Тело функции
Синтаксис
Синтаксис лямбда-функции следующий:
Лямбда p1, p2: выражение
Здесь параметры p1 и p2. Нет ограничений на добавление параметров в лямбда-функцию. Вы можете добавить столько, сколько хотите. Но лямбда-функция синтаксически ограничена одним выражением.
Примеры лямбда-функции в Python:
Пример 1
х = «лямбда-функция»
# лямбда получает пропуск для печати
(лямбда х : печать (х)) (х)
Выход
Лямбда-функция
Пример 2
х = лямбда а : а + 10
печать (х (5))
Выход
15
Наши учащиеся также читают: Изучайте Python онлайн бесплатно
Различия между нормальной функцией и лямбда-функцией
Лямбда-функция имеет некоторые синтаксические отличия от обычных функций.
- В теле используются только выражения, а не операторы. Если используются какие-либо операторы, такие как pass, assert, return или raise, вывод покажет SyntaxError.
Пример
>>> (лямбда x: утверждение x == 2)(2)
Файл «<input>», строка 1
(лямбда x: утверждение x == 2)(2)
^
SyntaxError: неверный синтаксис
- Лямбда-функция может существовать только как одно выражение. Даже если выражение распространяется по всему телу с использованием нескольких строк, оно может оставаться только как одно выражение.
Пример :
>>> (лямбда х:
… (x % 2 и «нечетное» или «четное»)))(3)
'странный'
Когда лямбда-аргумент нечетный, код возвращает строку нечетной и четной, если это не так. Код занимает две строки, так как он заключен в круглые скобки, но остается одним выражением.
- Лямбда-функция не поддерживает аннотации типов. Добавление аннотаций к лямбда-синтаксису вызовет Syntaxerror.
- IIFE или немедленно вызываемое функциональное выражение — это функция, которая выполняется, как только она определена. Она также известна как самовыполняющаяся анонимная функция. IIFE является прямым следствием лямбда-функции, поскольку лямбда-функцию можно вызывать, как она определена.
Теперь давайте посмотрим на основные различия между обычными функциями и лямбда-функциями:
(Источник)
Лямбда-функции — плюсы и минусы
Плюсы
- Это делает код более читабельным.
- Идеально подходит для функций, которые используются один раз.
- Легко понять и может быть использован для простых логических объяснений.
Минусы:
- Невозможно выполнить несколько независимых выражений.
- Использование лямбда-функции не идеально, если в обычной (def) функции код занимает больше одной строки.
- Все входы, выходы и операции не могут быть объяснены в строке документации, как в обычной функции.
Где использовать лямбды?
Несмотря на то, что обычные функции определения и лямбда-функции имеют ключевые различия, внутри они обрабатываются внутри.
- Обычно лямбда-функции в Python используются для функционального программирования. Вы можете использовать лямбда в функциональном программировании, чтобы передать функцию в качестве параметра другой функции.
- Если вам нужно уменьшить количество строк для указания функции, лямбда-выражения — это то, что вам нужно.
- Lambda также используется с функциями более высокого порядка, такими как map(), reduce() и т. д.
- Реакцию на события фреймворка пользовательского интерфейса можно отслеживать с помощью лямбда-функций.
Где воздержаться от использования лямбда-функций?
- Написание сложных лямбда-функций не рекомендуется, так как их будет сложно расшифровать.
- Воздержитесь от использования лямбда-функций для повторяющихся операций.
- Если код не соответствует Руководству по стилю Python (PEP8).
Лямбда-функции проверяются точно так же, как и обычные функции. Для этого можно использовать как unittest, так и doctest.
Прочтите наши популярные статьи о науке о данных в США
Курс анализа данных с сертификацией | Бесплатный онлайн-курс JavaScript с сертификацией | Наиболее часто задаваемые вопросы и ответы на собеседовании по Python |
Вопросы и ответы на интервью с аналитиком данных | Лучшие варианты карьеры в науке о данных в США [2022] | SQL против MySQL — в чем разница |
Полное руководство по типам данных | Заработная плата разработчиков Python в США | Зарплата аналитика данных в США: средняя зарплата |
Лямбда-функция с фильтром()
Filter() — это встроенная функция Python и список в качестве аргументов. Фильтр() используется, когда все итерируемые элементы находятся в списке, а возвращается другой список, содержащий элементы, для которых функция истинна.
Пример :
# Код Python для иллюстрации
# filter() с лямбда()
ли = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]
final_list = список (фильтр (лямбда x: (x% 2! = 0), li))
печать (финальный_список)
Выход:
[5, 7, 97, 77, 23, 73, 61]
(источник)
Пример :
# Программа для фильтрации только четных элементов из списка
мой_список = [1, 5, 4, 6, 8, 11, 3, 12]
новый_список = список (фильтр (лямбда х: (х% 2 == 0), мой_список))
печать (новый_список)
Выход
[4, 6, 8, 12]
Лямбда-функция с картой ()
Функция карты используется, когда все элементы находятся в списке, и список возвращается с элементами, возвращаемыми этой функцией для каждого элемента.
Пример : Чтобы удвоить значение каждого элемента в списке, код выглядит следующим образом:
мой_список = [1, 5, 4, 6, 8, 11, 3, 12]
новый_список = список (карта (лямбда х: х * 2, мой_список))
печать (новый_список)
Выход:
[2, 10, 8, 12, 16, 22, 6, 24]
Пример : чтобы кубировать каждое число в списке, код выглядит следующим образом.
список_1 = [1,2,3,4,5,6,7,8,9]
куб = карта (лямбда х: pow (х, 3), список_1)
список (в кубе)
Выход:
[1, 8, 27, 64, 125, 216, 343, 512, 729]
Лямбда-функция с функцией уменьшения ()
Функция reduce() в Python представляет собой список и аргумент. Он вызывается для возврата итерируемого и нового сокращенного списка. Это чем-то похоже на функцию сложения.
Пример 1
Примечание: этот пример взят из библиотеки functools.
Чтобы получить сумму списка, код будет таким:
# Код Python для иллюстрации
# уменьшить() с лямбда()
# чтобы получить сумму списка
из functools импортировать уменьшить
ли = [5, 8, 10, 20, 50, 100]
сумма = уменьшить ((лямбда x, y: x + y), li)
печать (сумма)
Выход:
193
Вывод
Использование лямбда-функций в Python долгое время было спорной темой среди программистов. Хотя верно то, что лямбда-выражения могут быть заменены встроенными функциями, генераторами списков и стандартными библиотеками, понимание лямбда-функций также необходимо. Это поможет вам понять основные принципы программирования и писать более качественные коды.
Даже если вы не используете лямбда-функции лично, могут быть случаи, когда вы можете встретить их в чужих программах. Поэтому в любом случае рекомендуется иметь базовые знания о лямбда-функциях.
Если вы хотите изучить полноценный Python и повысить свою карьеру в области науки о данных и бизнес-аналитики, вам лучше всего подойдет онлайн- программа профессиональной сертификации upGrad в области науки о данных и бизнес-аналитики от ведущего университета США — Университета Мэриленда.
Программа предлагает возможность учиться в одном из 100 лучших университетов мира и получить сертификат от Мэриленд Смит, чтобы увеличить ваши шансы на успех в этой области. Это 9-месячный курс с доступом к более чем 300 партнерам по найму, гарантированными возможностями собеседования для новичков и шестью менторскими звонками.
Что такое декораторы в Python?
Функция в Python, которая принимает аргумент одной функции и возвращает другую функцию, называется декоратором. Он обозначается синтаксисом декоратора. Декораторы можно применять в лямбда-функциях, но не с синтаксисом декоратора. Обычно это реализуется в целях отладки. Кроме того, в качестве декоратора можно использовать лямбда-функцию, но это не рекомендуется.
Что такое аргументы в функциях Python Lambda?
Лямбда-функции, как и обычные функции определения, поддерживают различные способы передачи аргументов. К ним относятся: Аргумент только ключевого слова Аргументы ключевого слова/ Аргументы с именами Переменные аргументы/ Переменный список аргументов Переменный список аргументов ключевого слова.
Что такое замыкания в функциях Python Lambda?
Замыкания или лексические замыкания — это функции, в которых каждая свободная переменная, кроме параметров, привязана к определенному значению в охватывающей области действия функции. Замыкания можно вызывать откуда угодно. Лямбда-функции, как и обычные функции def, могут быть замыканиями.