Лямбда значение: Лямбда (символ) | это… Что такое Лямбда (символ)?

Лямбда-функция в Python простыми словами / Хабр

В этой статье вы подробнее изучите анонимные функции, так же называемые «лямбда-функции». Давайте разберемся, что это такое, каков их синтаксис и как их использовать ( с примерами).

Лямбда-функции в Python являются анонимными. Это означает, что функция безымянна. Как известно, ключевое слов def используется в Python для определения обычной функции. В свою очередь, ключевое слово  lambda  используется для определения анонимной функции.

Лямбда-функция имеет следующий синтаксис.

Lambda аргументы: выражение

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

1.1. Пример лямбда-функции.

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

double = lambda x: x*2
print(double(5))

Вывод:

10

В вышеуказанном коде lambda x: x*2 — это лямбда-функция. Здесь x — это аргумент, а x*2 — это выражение, которое вычисляется и возвращается.

Эта функция безымянная. Она возвращает функциональный объект с идентификатором double. Сейчас мы можем считать её обычной функцией.

Инструкция:

double = lambda x: x*2

Эквивалентна:

def double(x):
		return x * 2
  • Эта функция может иметь любое количество аргументов, но вычисляет и возвращает только одно значение

  • Лямбда-функции применимы везде, где требуются объекты-функции 

  • Вы должны помнить, что  синтаксически лямбда-функция ограничена, позволяет представить всего одно выражение

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

2. Различие между обычной функцией и лямбда-функцией

Рассмотрим пример и попробуем понять различие между определением (Def) для обычной функции и lambdaфункции. Этот код возвращает заданное значение, возведенное в куб:

def defined_cube(y):
    return y*y*y
lambda_cube = lambda y: y*y*y
print(defined_cube(2))
print(lambda_cube(2))

Вывод:

8
8

Как показано в примере выше, обе представленные функции, defined_cube() и  lambda_cube(), ведут себя одинаково, как и предполагалось.

Разберем вышеуказанный пример подробнее:

  • Без использования лямбды: Здесь обе функции возвращают заданное значение, возведенное в куб. Но при использовании

    def, нам пришлось определить функцию с именем и defined_cube() дать ей входную величину.  После выполнения нам также понадобилось возвратить результат, из того места, откуда была вызвана функция, и мы сделали это, используя ключевое слово return.

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

3. Лямбда-функции и функции высшего порядка

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

В Python мы часто используем их как аргумент функции высшего порядка (функции, которая принимает другие функции в качестве аргументов).  Лямбда-функции используют вместе с такими встроенными функциями как filter()map(),reduce() и др.

Давайте рассмотрим еще несколько распространенных вариантов использования лямбда-функций.

3.1. Пример с filter()

Функция filter() в Python принимает в качестве аргументов функцию и список .

Функция вызывается со всеми элементами в списке, и в результате возвращается новый список, содержащий элементы, для которых функция результирует в

True.

Вот пример использования функции filter() для отбора четных чисел из списка.

my_list = [1, 3, 4, 6, 10, 11, 15, 12, 14]
new_list = list(filter(lambda x: (x%2 == 0) , my_list))
print(new_list)

Вывод:

[4, 6, 10, 12, 14]

3.2. Пример с map()

Функция map() принимает в качестве аргументов функцию и список.

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

Ниже пример использования функции map() для удвоения всех элементов списка.

current_list = [1, 3, 4, 6, 10, 11, 15, 12, 14]
new_list = list(map(lambda x: x*2 , current_list))
print(new_list)

Вывод:

[2, 6, 8, 12, 20, 22, 30, 24, 28]

3.3. Пример с reduce()

Функция reduce() принимает в качестве аргументов функцию и список. Функция вызывается с помощью лямбда-функции и итерируемого объекта  и возвращается новый уменьшенный результат. Так выполняется повторяющаяся операцию над парами итерируемых объектов. Функция reduce() входит в состав модуля functools.

from functools import reduce
current_list = [5, 15, 20, 30, 50, 55, 75, 60, 70]
summa = reduce((lambda x, y: x + y), current_list)
print(summa)

Вывод:

380

Здесь результаты предыдущих двух элементов суммируются со  следующим элементом, и это продолжается до конца списка, вот так:

5+15+20+30+50+55+75+60+70

4. Лямбда и  списковое включение

В этом примере мы будем использовать лямбда-функцию со списковым включением и лямбда-функцию с циклом

for. Мы выведем на экран  таблицу из 10 элементов.

tables = [lambda x = x: x*10 for x in range(1, 11)]
for table in tables:
    print(table())

Вывод:

10
20
30
40
50
60
70
80
90
100

5. Лямбда и условные операторы

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

Например, есть две цифры, и вы должны определить, какая из них представляет наибольшее число.

max_number = lambda a, b: a if a > b else b
print(max_number(3, 5))

Вывод:

5

Этот метод позволяет вам добавлять условия в лямбда-функции.

6. Лямбда и множественные операторы

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

current_list = [[10,6,9],[0, 14, 16, 80],[8, 12, 30, 44]]
sorted_list = lambda x: (sorted(i) for i in x)
second_largest = lambda x, func: [y[len(y)-2] for y in func(x)]
result = second_largest(current_list, sorted_list)
print(result)

Вывод:

[9, 16, 30]

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

Заключение

Теперь вы знаете как использовать в Python lambda-функции и можете:

  • Писать и использовать лямбда-функции.

  • Рационально выбирать между обычными и лямбда-функциями в Python.

  • Использовать лямбды с функциями высшего порядка или ключевыми функциями.

  • Использовать лямбды с абстракциями списков.

  • Добавлять условия к лямбда-функциям.

Датчик состава смеси UEGO X-Series (универсальный, широкополосный лямбда зонд) Bosch 4,9 LSU 30-0300, AEM

AEM UEGO X-Series : самый быстрый и точный лямбда зонд из существующих на данный момент. Американский бренд AEM не нуждается в представлении. Он хорошо знаком всем, кто имеет отношение к автоспорту и тюнингу. AEM UEGO X-Series – это лучшая широкополосная лямбда с цифровым дисплеем на данный момент в линейке продукции AEM, и, пожалуй, лучшая в мире.

Это смелое утверждение основывается на результатах независимых тестов от 31 августа 2015 года. При сравнении 17 аналогичных продуктов от американских, японских и европейских производителей, AEM UEGO X-Series показал лучшие результаты, обойдя своих конкурентов по всем основным показателям – точности измерения и скорости отклика. На практике, AEM UEGO X-Series точен, очень быстр и удобен для прочтения данных. Всегда приятно пользоваться качественным инструментом! Цифровой дисплей показывает абсолютные значения состояния топливной смеси, одновременно с этим бегающий светодиод оперативно оповещает пользователя, меняя цвет при перемещении значения от богатой до бедной смеси. Для чего в принципе нужен широкополосный лямбда-зонд? Основная задача этого устройства – измерение показателя AFR (air fuel ratio) – соотношение воздуха к топливу в выпускном тракте автомобиля. Понимание этой характеристики позволяет добиться оптимальной настройки топливной смеси под заданные параметры конкретного мотора.
Богатая, и тем более бедная топливная смесь губительны для любого, даже самого надежного двигателя. Бедная смесь вызывает детонацию в камерах сгорания и может привести к механическим повреждениям. Богатая смесь повышает температуру выхлопных газов, а так же приводит к потере мощности, что очень нежелательно. Только лишь с качественно настроенными оптимальными топливными картами, форсированный мотор будет стабилен, надежен и долговечен. При настройке топливной смеси особенно важна характеристика скорости отклика зонда на изменения значений AFR. Чем быстрее датчик научится понимать и считывать эти изменения, тем точнее и качественнее будут топливные карты во всех диапазонах работы мотора. Чувствительный новой широкополосной лямбды AEM UEGO X-Series считывает эти значения настолько быстро и точно, как до него этого не делал ни один аналогичный продукт. AEM UEGO X-Series позволяет добиться оптимальной настройки любого двигателя – будь то форсированный турбомотор или оборотистый «атмосферник».
Зонд LSU 4.9 нового AEM UEGO X-Series не требует калибровки на воздухе, что очень удобно в использовании при настройке. Для тех, кто не знаком с вопросом, опишем, как это делалось прежде. При настройке с использованием устаревших зондов, настройщику приходилось выкручивать зонд из выхлопной системы машины, не отключая его от контроллера, для того чтобы вывесить на открытом воздухе и замерить значение содержания кислорода в окружающей атмосфере. Иногда процедуру приходилось повторять по несколько раз. Новые зонды Bosch LSU 4.9 системы AEM UEGO X-Series были заранее откалиброваны в лабораторных условиях и не требуют от пользователя дополнительной калибровки. Важный момент, AEM UEGO X-Series не работает с другими сенсорами. В блоке AEM UEGO X-Series расположен специальный откалиброванный резистор, работающий лишь в связке с сенсором Bosch LSU 4.9. Замена сенсора приведет к неправильным показаниям. Корпус датчика AEM UEGO X-Series выполнен в стандартном размере, диаметром 52 мм, что позволяет его установить в большинство традиционных подставок для доп.
приборов. Датчик имеет сменный черный или серебристый ободок и сменную лицевую панель, выполненную в черном и белом цвете. Так, вы можете поменять внешний вид датчика, выбрав наиболее подходящую комбинацию цветов для интерьера вашего автомобиля. Корпус нового AEM UEGO X-Series оснащен аналоговым выходом 0,5 вольт, для трансляции данных во внешние считывающие даталоггеры или блоки управления двигателем. Особенно важно, что новая широкополосная лямбда AEM UEGO X-Series абсолютно универсальна и может быть использована в любом автомобиле с любым блоком управления двигателем.

Определение лямбда

К

Гордон Скотт

Полная биография

Гордон Скотт был активным инвестором и техническим аналитиком более 20 лет. Он дипломированный специалист по рынку (CMT).

Узнайте о нашем редакционная политика

Обновлено 29 апреля 2022 г.

Факт проверен

Скайлар Кларин

Факт проверен Скайлар Клэрин

Полная биография

Скайлар Клэрин занимается проверкой фактов и экспертом в области личных финансов с обширным опытом, включая ветеринарные технологии и изучение фильмов.

Узнайте о нашем редакционная политика

Что такое лямбда?

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

Ключевые выводы

  • Значения лямбда определяют размер кредитного плеча, используемого опционом.
  • Считается одним из «Малых греков» в финансовой литературе. Эту меру обычно находят, работая с дельтой.
  • Показатель чувствителен к изменениям волатильности, но он не рассчитывается так же, как вега.

Понимание лямбды

Лямбда показывает, какой коэффициент кредитного плеча обеспечит опцион при изменении цены базового актива на 1%. Лямбда — это измерение, считающееся одним из «минорных греков», и оно широко не используется, потому что большую часть того, что оно определяет, можно обнаружить, используя комбинацию других вариантов греков. Тем не менее, информация, которую он предоставляет, полезна для понимания того, какое кредитное плечо использует трейдер в торговле опционами. Там, где кредитное плечо является ключевым фактором для конкретной сделки, лямбда становится полезной мерой.

Полное уравнение лямбда выглядит следующим образом:

λ «=» ∂ С / С ∂ С / С «=» С С ∂ С ∂ С «=» ∂ п С ∂ п С где: С «=» Цена опции С «=» Цена базовой ценной бумаги ∂ «=» Изменять \begin{align}&\lambda=\frac{\partial C/C}{\partial S/S}=\frac{S}{C}\frac{\partial C}{\partial S}=\frac{ \partial \text{ ln }C}{\partial \text{ ln }S}\\&\textbf{где:}\\&C=\text{Цена опциона}\\&S=\text{Цена базовая безопасность}\\&\partial=\text{Изменить}\end{выровнено} ​λ=∂S/S∂C/C​=CS​∂S∂C​=∂ ln S∂ ln C, где:C=Цена опционаS=Цена базовой ценной бумаги∂=Изменение​

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

Лямбда в действии

Предполагая, что доля акций торгуется по 100 долларов, а опцион колл «при деньгах» с ценой исполнения 100 долларов торгуется по 2,10 доллара, а также при условии, что дельта-оценка равна 0,58, значение лямбда можно рассчитать с помощью этого уравнения:

лямбда «=» 0,58 × ( 100 2.10 ) «=» 27,62 \text{Lambda}=0,58\times\left(\frac{100}{2,10}\right)=27,62 Лямбда = 0,58 × (2,10100​) = 27,62

Это значение лямбда указывает на сравнимое кредитное плечо опциона по сравнению с акцией. Следовательно, увеличение стоимости акций на 1% приведет к увеличению той же стоимости опциона в долларах на 27,62%.

Подумайте, что происходит с долей в 1000 долларов в этой 100-долларовой акции. Трейдер владеет 10 акциями, и если акции в этом примере вырастут на 1% (со 100 до 101 доллара за акцию), стоимость доли трейдера увеличится на 10 долларов до 1010 долларов. Но если у трейдера была аналогичная доля в размере 1050 долларов в опционе (пять контрактов по 2,10 доллара), результирующее увеличение стоимости этой ставки будет совсем другим. Поскольку стоимость опциона увеличится с 2,10 до 2,68 доллара (на основе значения дельты), тогда стоимость 1050 долларов, удерживаемых в этих пяти опционных контрактах, вырастет до 1340 долларов, т. е. на 27,62%.

Лямбда и волатильность

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

Например, значение лямбда имеет тенденцию быть выше, чем дальше находится дата истечения срока действия опциона, и падает по мере приближения даты истечения срока действия. Это наблюдение верно и для веги. Лямбда изменяется, когда происходят большие колебания цены или повышенная волатильность базового актива, потому что это значение отражается в цене опционов. Если цена опциона движется вверх по мере роста волатильности, то его значение лямбда будет уменьшаться, потому что более высокая стоимость опционов означает уменьшение кредитного плеча.

Учебное пособие: лямбда-функции в Python

9 марта 2022 г.

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

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

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

Лямбда-функция в Python имеет следующий синтаксис:

лямбда-параметры: выражение

Структура лямбда-функции включает три элемента:

  • Ключевое слово lambda — аналог def в обычных функциях
  • Параметры — поддерживают передачу позиционных и ключевых аргументов
    , как обычные функции
  • Тело — выражение для заданных параметров, оцениваемых
    с помощью лямбда-функции

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

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

Как работает лямбда-функция в Python

Давайте рассмотрим простой пример лямбда-функции:

 лямбда х: х + 1 
 <функция __main__.<лямбда>(x)> 

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

 по определению increment_by_one(x):
        вернуть х + 1 

Однако на данный момент наша лямбда-функция lambda x: x + 1 только создает объект функции и ничего не возвращает. Мы ожидали этого: мы не предоставили никакого значения (аргумента) его параметру x . Давайте сначала назначим переменную, передадим ее лямбда-функции и посмотрим, что мы получим на этот раз:

 а = 2
    печать (лямбда х: а + 1) 
 <функция <лямбда> по адресу 0x00000250CB0A5820> 

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

 (лямбда х: х + 1)(2) 
 3 

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

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

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

 (лямбда x, y, z: x + y + z)(3, 8, 1) 
 12 

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

 print((лямбда x: x если(x > 10) else 10)(5)) 
 print((лямбда x: x если(x > 10) else 10)(12)) 
 10
    12 

Если присутствует несколько условий ( if-elif-…-else ), мы должны их вложить друг в друга:

 (лямбда x: x * 10, если x > 10 иначе (x * 5, если x < 5, иначе x))(11) 
 110 

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

 определение check_conditions(x):
        если х > 10:
            вернуть х * 10
        Элиф х < 5:
            вернуть х * 5
        еще:
            вернуть х
    check_conditions(11) 
 110 

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

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

 приращение = лямбда х: х + 1
    приращение(2) 
 3 

Однако, согласно руководству по стилю PEP 8 для кода Python, это плохая практика:

Использование оператора присваивания устраняет единственное преимущество, которое лямбда-выражение может предложить по сравнению с явным оператором def (т. е. его можно встроить в более крупное выражение).

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

Применение лямбда-функции в Python

Лямбда с фильтром

() Функция

Мы используем функцию filter() в Python для выбора определенных элементов из
итерируемых (например, списков, наборов, кортежей, серий и т. д.) на основе предопределенных критериев
. Он принимает два аргумента:

  • Функция, определяющая критерии фильтрации
  • Итерируемый объект, на котором выполняется функция

В результате этой операции получаем объект фильтра:

 лст = [33, 3, 22, 2, 11, 1]
    фильтр(лямбда х: х > 10, лст) 
 <фильтр по адресу 0x250cb090520> 

Чтобы получить новый итерируемый объект из объекта фильтра со всеми элементами из исходного итерируемого объекта, которые удовлетворяют предопределенным критериям, нам нужно передать объект фильтра в соответствующую функцию стандартной библиотеки Python: list() , tuple() , set() , frostset() или sorted() (чтобы вернуть отсортированный список).

Давайте отфильтруем список чисел, выбрав только числа больше 10, и вернем список, отсортированный в порядке возрастания:

 лст = [33, 3, 22, 2, 11, 1]
    отсортировано (фильтр (лямбда x: x > 10, lst)) 
 [11, 22, 33] 

Нам не нужно создавать новый итерируемый объект того же типа, что и исходный. Также мы можем сохранить результат этой операции в переменной:

 лст = [33, 3, 22, 2, 11, 1]
    tpl = кортеж (фильтр (лямбда x: x > 10, lst))
    тпл 
 (33, 22, 11) 

Лямбда с функцией

map()

Мы используем функцию map() в Python для выполнения определенной операции над каждым элементом итерируемого объекта. Его синтаксис идентичен filter() : функция для выполнения и итерация, к которой эта функция применяется. Функция map() возвращает объект карты, из которого мы можем получить новую итерацию, передав этот объект соответствующей функции Python: список() , кортеж() , set() , замороженный набор() или sorted() .

Как и в случае функции filter() , мы можем извлечь итерацию другого типа, отличного от исходного, из объекта карты, а также присвоить ее переменной. Ниже приведен пример использования функции map() для умножения каждого элемента в списке на 10 и вывода сопоставленных значений в виде кортежа, назначенного переменной tpl :

 лст = [1, 2, 3, 4, 5]
    печать (карта (лямбда x: x * 10, lst))
    tpl = кортеж (карта (лямбда x: x * 10, lst))
    тпл 
 <объект карты по адресу 0x00000250CB0D5F40>
    (10, 20, 30, 40, 50) 

Одно важное различие между функциями map() и filter() заключается в том, что первая всегда возвращает итерацию той же длины, что и исходная . Итак, поскольку объекты серии pandas также являются итерируемыми, мы можем применить функцию map() к столбцу DataFrame, чтобы создать новый столбец:

 импортировать панд как pd
    df = pd. DataFrame({'col1': [1, 2, 3, 4, 5], 'col2': [0, 0, 0, 0, 0]})
    печать (дф)
    df['col3'] = df['col1'].map(лямбда x: x * 10)
    дф 
 столбец 1 столбец 2
0 1 0
1 2 0
2 3 0
3 4 0
4 5 0
   столбец1 столбец2 столбец3
0 1 0 10
1 2 0 20
2 3 0 30
3 4 0 40
4 5 0 50 

Обратите внимание, что для получения того же результата в приведенном выше случае также можно использовать функцию apply() :

 df['col3'] = df['col1'].apply(лямбда x: x * 10)
    дф 
 столбец 1 столбец 2 столбец 3
0 1 0 10
1 2 0 20
2 3 0 30
3 4 0 40
4 5 0 50 

Мы также можем создать новый столбец DataFrame на основе некоторых условий для другого столбца. Еще раз, для приведенного ниже кода мы можем использовать функции map() или apply() взаимозаменяемо:

 df['col4'] = df['col3'].map(лямбда x: 30, если x < 30, иначе x)
    дф 
 col1 col2 col3 col4
0 1 0 10 30
1 2 0 20 30
2 3 0 30 30
3 4 0 40 40
4 5 0 50 50 

Лямбда с

уменьшить() Функция

Функция reduce() связана с модулем functools Python и работает следующим образом:

  1. Работает с первыми двумя элементами итерируемого объекта и сохраняет результат
  2. Работает с сохраненным результатом и следующим элементом итерации
  3. Продолжает таким образом над парами значений до тех пор, пока не будут использованы все элементы
    итерации

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

 из functools импортировать уменьшить
    лст = [1, 2, 3, 4, 5]
    уменьшить (лямбда x, y: x + y, lst) 
 15 

Приведенный выше код показывает функцию reduce() в действии, когда мы используем ее для вычисления суммы списка (хотя для такой простой операции мы бы использовали лучшее решение: sum(lst) ).

Обратите внимание, что функция reduce() всегда требует лямбда-функции ровно с двумя параметрами, а также что мы должны сначала импортировать ее из functools Модуль Python.

Плюсы и минусы лямбда-функции в Python

Плюсы

  • Это идеальный выбор для вычисления одного выражения, которое
    предполагается вычислять только один раз.
  • Его можно вызвать, как только он будет определен.
  • Его синтаксис более компактен по сравнению с соответствующей обычной функцией
    .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *