О лямбда-функциях
Лямбда-функции в Python - это безымянные и анонимные функции, которые можно использовать для создания выражений, возвращающих какое-то значение на основе вычислений, реализованных в самом выражении. Логика в этих лямбда-функциях может быть написана кратко, обычно это легко умещается в одной строке. Иногда их трудно читать, особенно если люди плохо разбираются в лямбда-функциях. Однако у них есть преимущество, заключающееся в том, что все вместе в блоках кода, и они помогают лучше понять контекст.
Синтаксис лямбда-функций
Синтаксис лямбда-функции в Python выглядит так:
умножить = лямбда x, y: x * yПервая часть лямбда-выражения, непосредственно перед символом двоеточия (:), принимает параметры в качестве аргументов. Вторая часть после символа двоеточия должна быть возвращаемым значением. Это возвращаемое значение также может быть выражением с логикой. Фактически, лямбда-функции используются почти все время для реализации некоторой логики для предоставленных аргументов, а затем для возврата окончательного результата.
Чтобы проверить указанную выше лямбда-функцию, вы можете использовать следующий оператор:
печать (умножить (3, 4))Вы должны получить следующий результат:
12В противном случае та же лямбда-функция была бы записана следующим образом:
def multiply (x, y):вернуть x * y
печать (умножить (3, 4))
Оба образца кода дадут одинаковый результат. Еще несколько примеров лямбда-функций объясняются ниже.
Передача лямбда-функций в качестве аргументов
Вы можете использовать лямбда-функции для выполнения вычислений и передачи возвращаемого значения в качестве аргументов другим функциям. Метод сортировки в Python принимает «ключевой» аргумент, в котором вы можете указать вызываемую функцию, которая принимает единственный аргумент для целей сортировки. Вместо того, чтобы сначала определять отдельную функцию, которая возвращает ключ, а затем указывать ссылку функции на аргумент, вы можете просто использовать лямбда-функцию.
фрукты = [(2, 'яблоки'), (4, 'апельсины'), (3, 'бананы')]фрукты.sort (ключ = лямбда-элемент: элемент [0])
печать (фрукты)
Приведенный выше код даст следующий результат:
[(2, 'яблоки'), (3, 'бананы'), (4, 'апельсины')]Вы можете использовать лямбда в любом таком методе, который принимает вызываемую функцию в качестве аргумента (например, метод фильтра).
Использование лямбда-функций в списках
Вы можете использовать Lambda в понимании списков, и список будет должным образом создан из значений, возвращаемых выражением Lambda.
get_square = лямбда а: а * аквадраты = [get_square (x) для x в диапазоне (5)]
печать (квадраты)
Это даст следующий результат:
[0, 1, 4, 9, 16]Приведенный выше пример кода также можно записать следующим образом, где «x» передается лямбда-функции в качестве аргумента:
квадраты = [(лямбда x: x * x) (x) для x в диапазоне (5)]печать (квадраты)
Этот пример просто иллюстрирует использование лямбда-функций в понимании списков. В противном случае вы можете легко вычислить квадраты, используя минимальный оператор понимания списка:
print ([x * x для x в диапазоне (5)])Использование лямбда-функций в словарях Python
В приведенном ниже примере кода показаны лямбда-функции, используемые в парах "ключ-значение" в словаре Python. После определения вы можете вызывать эти функции в любое время.
вычислить = 'сумма': лямбда a, b: a + b, 'разница': лямбда a, b: a - bprint (вычислить ['сумма'] (4, 5))
print (вычислить ['разницу'] (4, 5))
После выполнения приведенного выше кода вы должны получить следующий результат:
9-1
Заключение
Лямбда-функции предоставляют отличный способ писать сокращенные выражения и поддерживать порядок и организованность без ненужного создания множества именованных функций. Однако чрезмерное использование лямбда-функций может затруднить чтение кода, особенно когда код просматривается более чем одним человеком. Лучше иметь более читаемый код (даже если он многословный), чем иметь что-то, что может быть немного сложно понять при повторных посещениях.