Имя - это соглашение, которое используется для обозначения или адресации любого объекта. Почти все, что нас окружает, имеет имя. Мир программирования также соответствует этому. Но обязательно ли все называть? Или у вас может быть что-то просто «анонимное»? Ответ - да. ' предоставляет лямбда-функции, также известные как анонимные функции, которые фактически безымянны. Итак, давайте перейдем к изучению этих «анонимных тайн» Python в следующей последовательности.
- Зачем нужны лямбда-функции Python?
- Что такое лямбда-функции Python?
- Как писать лямбда-функции?
- Как анонимные функции уменьшают размер кода?
- Лямбда-функции 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])
Приведенный выше пример изображен на следующем изображении:
ВЫВОД: 187
Вывод ясно показывает, что все элементы списка добавляется постоянно чтобы вернуть окончательный результат.
На этом мы подошли к концу статьи о Python Lambda. Надеюсь, вы понимаете все, что вам поделились. Убедитесь, что вы тренируетесь как можно больше и верните свой опыт.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Python Lambda», и мы свяжемся с вами в ближайшее время.
Чтобы получить более глубокие знания о Python и его различных приложениях, вы можете зарегистрироваться в режиме реального времени. с круглосуточной поддержкой и пожизненным доступом.