Python

Как да използвам ламбда функции в Python

Как да използвам ламбда функции в Python
Тази статия ще обясни как да използвате функциите на Lambda в Python. Ламбда функциите могат да се използват за писане на кратки еднолинейни линии, внедряване на логика и бързо получаване на връщани стойности, които могат да бъдат подадени към други изрази.

Относно ламбда функциите

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

Синтаксис на ламбда функциите

Синтаксисът на ламбда функция в Python изглежда така:

умножете = ламбда х, у: х * у

Първата част от ламбда израза, непосредствено преди символа двоеточие (:), взема параметри като аргументи. Втората част, след символа на дебелото черво, трябва да бъде върната стойност. Тази възвръщаема стойност може да бъде израз и с логика. Всъщност функциите на Lambda се използват почти през цялото време, за да реализират някаква логика върху предоставените аргументи и след това да върнат крайния резултат.

За да тествате функцията Lambda, посочена по-горе, можете да използвате следното твърдение:

печат (умножение (3, 4))

Трябва да получите следния изход:

12

Същата ламбда функция би била написана по друг начин по следния начин:

def multiply (x, y):
връщане x * y
печат (умножение (3, 4))

И двете примерни кодове ще дадат еднакви резултати. Още някои примери за ламбда функции са обяснени по-долу.

Предайте ламбда функциите като аргументи

Можете да използвате Lambda функции, за да правите изчисления и да предоставяте връщаната стойност като аргументи на други функции. Методът за сортиране в Python приема аргумент „ключ“, където можете да зададете извикваща функция, която приема един аргумент за целите на сортирането. Вместо първо да дефинирате отделна функция, която връща ключ и след това да предоставите референцията на функцията към аргумента, можете просто да използвате функция Lambda.

плодове = [(2, „ябълки“), (4, „портокали“), (3, „банани“)]
плодове.сортиране (ключ = ламбда елемент: елемент [0])
печат (плодове)

Кодът по-горе ще даде следния изход:

[(2, „ябълки“), (3, „банани“), (4, „портокали“)]

Можете да използвате ламбда във всеки такъв метод, който приема извикваща функция като аргумент (например метод на филтър).

Използвайте ламбда функции в разбирането на списъка

Можете да използвате Lambda в разбирането на списъка и списъкът ще бъде надлежно създаден от стойностите, върнати от израза Lambda.

get_square = ламбда a: a * a
квадрати = [get_square (x) за x в обхват (5)]
печат (квадрати)

Това ще доведе до следния резултат:

[0, 1, 4, 9, 16]

Примерът на кода по-горе може да бъде написан и по следния начин, където „x“ се предоставя на функцията ламбда като аргумент:

квадрати = [(ламбда x: x * x) (x) за x в обхват (5)]
печат (квадрати)

Този пример просто илюстрира използването на ламбда функции в разбирането на списъка. В противен случай можете лесно да изчислите квадратите, като използвате минимален израз за разбиране на списъка:

печат ([x * x за x в обхват (5)])

Използвайте ламбда функции в речниците на Python

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

изчисли = 'сума': ламбда a, b: a + b, 'разлика': ламбда a, b: a - b
печат (изчислете ['сума'] (4, 5))
печат (изчислете ['разлика'] (4, 5))

Трябва да получите следния изход след стартиране на горния код:

9
-1

Заключение

Ламбда функциите осигуряват отличен начин за писане на стенографски изрази и поддържат нещата подредени и организирани, без излишно създаване на много именувани функции. Въпреки това, прекаленото използване на Lambda функции може да направи кода труден за четене, особено когато кодът се разглежда от повече от един човек. По-добре е да имате по-четлив код (дори ако е многословен), отколкото да имате нещо, което може да е малко трудно за разбиране при повторните посещения.

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...