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



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

Имя - это соглашение, которое используется для обозначения или адресации любого объекта. Почти все, что нас окружает, имеет имя. Мир программирования также соответствует этому. Но обязательно ли все называть? Или у вас может быть что-то просто «анонимное»? Ответ - да. ' предоставляет лямбда-функции, также известные как анонимные функции, которые фактически безымянны. Итак, давайте перейдем к изучению этих «анонимных тайн» Python в следующей последовательности.

Итак, приступим :)





Зачем использовать лямбда-функции Python?


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

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



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


Лямбда-функции Python - это функции, не имеющие имени. Они также известны как анонимные или безымянные функции. Слово «лямбда» - это не имя, а ключевое слово. Это ключевое слово указывает, что следующая функция анонимна.

Теперь, когда вы знаете, на что ссылаются эти анонимные функции, давайте перейдем к рассмотрению того, как вы пишете эти функции Python Lambda.

Как писать лямбда-функции на Python?

Лямбда-функция создается с помощью лямбда-оператора и имеет следующий синтаксис:



СИНТАКСИС:

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

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

ПРИМЕР:

лямбда: «Укажите цель»

Здесь лямбда-функция не принимает никаких аргументов.

ПРИМЕР:

лямбда аодин: «Укажите использованиеодин'

Здесь лямбда принимает один вход, который являетсяодин.

программа java для подключения к базе данных mysql

Точно так же у вас может быть лямбда aодин, чтобы2, чтобы3..кп.

Давайте рассмотрим несколько примеров, чтобы продемонстрировать это:

ПРИМЕР 1:

a = лямбда x: x * x print (a (3))

ВЫВОД: 9

ПРИМЕР 2:

a = лямбда x, y: x * y print (a (3,7))

ВЫВОД: 21

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

С другой стороны, обычные функции Python могут принимать любое количество операторов в своих определениях функций.

Как анонимные функции уменьшают размер кода?

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

Любая нормальная функция в Python определяется с помощью def ключевое слово следующим образом:

СИНТАКСИС:

def имя_функции (параметры):
заявления)

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

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

ПРИМЕР:

def my_func (x): вернуть x * x print (my_func (3))

ВЫВОД: 9

Как вы можете видеть, в приведенном выше примере нам нужен оператор return в my_func для оценки значения квадрата 3. Напротив, лямбда-функция не использует этот оператор return, а тело анонимной функции записывается в той же строке, что и сама функция, после символа двоеточия. Следовательно, размер функции меньше размера my_func.

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

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

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

Лямбда-функции Python в пользовательских функциях:

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

Следующий пример состоит из new_func - обычной функции Python, которая принимает один аргумент x. Затем этот аргумент добавляется к неизвестному аргументу y, который передается через лямбда-функцию.

как установить php на windows 10

ПРИМЕР:

def new_func (x): return (лямбда y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

ВЫВОД:

6
5
Как вы можете видеть, в приведенном выше примере лямбда-функция, которая присутствует в new_func, вызывается всякий раз, когда мы используем new_func (). Каждый раз мы можем передавать аргументам отдельные значения.

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

Как использовать анонимные функции в filter (), map () и reduce ():

Анонимные функции внутри фильтр():

фильтр():

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

Синтаксис этой функции:

СИНТАКСИС:

фильтр (функция, итерация)

Теперь рассмотрим следующий пример:

ПРИМЕР:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

ВЫВОД: [6]

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

карта():

Функция map () в Python - это функция, которая применяет данную функцию ко всем итерациям и возвращает новый список.

виды каркасов в селене

СИНТАКСИС:

карта (функция, итерация)

Давайте рассмотрим пример, чтобы продемонстрировать использование лямбда-функций в функции map ():

ПРИМЕР:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

ВЫВОД:

[Верно, Верно, Верно, Верно, Ложно, Верно, Верно]

Приведенный выше вывод показывает, что всякий раз, когда значение итераций не равно 2 при делении на 3, возвращаемый результат должен быть True. Следовательно, для всех элементов в my_list он возвращает true, за исключением значения 6, когда условие изменяется на False.

уменьшить ():

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

Синтаксис этой функции следующий:

СИНТАКСИС:

уменьшить (функция, последовательность)

ПРИМЕР:

из functools import reduce reduce (лямбда a, b: a + b, [23,21,45,98])

Приведенный выше пример изображен на следующем изображении:

уменьшить-python лямбда-edureka

ВЫВОД: 187

Вывод ясно показывает, что все элементы списка добавляется постоянно чтобы вернуть окончательный результат.

На этом мы подошли к концу статьи о Python Lambda. Надеюсь, вы понимаете все, что вам поделились. Убедитесь, что вы тренируетесь как можно больше и верните свой опыт.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Python Lambda», и мы свяжемся с вами в ближайшее время.

Чтобы получить более глубокие знания о Python и его различных приложениях, вы можете зарегистрироваться в режиме реального времени. с круглосуточной поддержкой и пожизненным доступом.