Python Lambda funkcijas
Python Lambda funkcijas ir anonīmas funkcijas nozīmē, ka funkcijai nav nosaukuma. Kā mēs jau zinām, def atslēgvārds tiek izmantots, lai Python definētu normālu funkciju. Līdzīgi, lambda atslēgvārds tiek izmantots, lai definētu anonīmu funkciju Python .
Python Lambda funkcijas sintakse
Sintakse: lambda argumenti: izteiksme
- Šai funkcijai var būt jebkurš argumentu skaits, bet tikai viena izteiksme, kas tiek novērtēta un atgriezta.
- Var brīvi izmantot lambda funkcijas visur, kur ir nepieciešami funkciju objekti.
- Jums jāzina, ka lambda funkcijas sintaktiski ir ierobežotas ar vienu izteiksmi.
- Tam ir dažādi lietojumi noteiktās programmēšanas jomās, kā arī cita veida izteiksmes funkcijās.
Python Lambda funkcijas piemērs
Piemērā mēs definējām lambda funkciju ( augšējais ), lai pārvērstu virkni par tās lielo burtu, izmantojot augšējais () .
Šis kods definē lambda funkciju ar nosaukumu upper> kas izmanto virkni kā argumentu un pārvērš to par lielajiem burtiem, izmantojot upper()> metodi. Pēc tam tā piemēro šo lambda funkciju virknei “techcodeview.com” un izdrukā rezultātu
Python3
str1> => 'techcodeview.com'> upper> => lambda> string: string.upper()> print> (upper(str1))> |
Izvade:
GEEKSFORGEEKS
Lambda funkcijas izmantošana Python
Apskatīsim dažus Python lambda funkcijas praktiskos lietojumus.
Stāvokļa pārbaude, izmantojot Python lambda funkciju
Lūk, 'format_numric' izsauc lambda funkciju, un cipars tiek nodots kā parametrs darbību veikšanai.
Python3
format_numeric> => lambda> num: f> '{num:e}'> if> isinstance> (num,> int> )> else> f> '{num:,.2f}'> print> (> 'Int formatting:'> , format_numeric(> 1000000> ))> print> (> 'float formatting:'> , format_numeric(> 999999.789541235> ))> |
Izvade:
Int formatting: 1.000000e+06 float formatting: 999,999.79
Atšķirība starp Lambda funkcijām un def definētu funkciju
Kods definē kuba funkciju, izmantojot gan ' def'> atslēgvārdu un lambda funkciju. Tas aprēķina dotā skaitļa (šajā gadījumā 5) kubu, izmantojot abas pieejas, un izdrukā rezultātus. Izvade ir 125 abiem ' def'> un lambda funkcijas, parādot, ka tās sasniedz vienu un to pašu kuba aprēķinu.
Python3
def> cube(y):> > return> y> *> y> *> y> lambda_cube> => lambda> y: y> *> y> *> y> print> (> 'Using function defined with `def` keyword, cube:'> , cube(> 5> ))> print> (> 'Using lambda function, cube:'> , lambda_cube(> 5> ))> |
Izvade:
Using function defined with `def` keyword, cube: 125 Using lambda function, cube: 125
Kā redzams iepriekš minētajā piemērā, gan kubs () funkcija un lambda_kubs() funkcija darbojas tāpat un kā paredzēts. Analizēsim iepriekš minēto piemēru nedaudz vairāk:
| Ar lambda funkciju | Bez lambda funkcijas |
|---|---|
| Dažkārt atbalsta vienas rindiņas paziņojumus, kas atgriež kādu vērtību. | Atbalsta jebkuru rindu skaitu funkciju blokā |
| Piemērots īsu operāciju/datu manipulāciju veikšanai. | Piemērots visiem gadījumiem, kad nepieciešamas vairākas koda rindiņas. |
| Lambda funkcijas izmantošana dažkārt var samazināt koda lasāmību. | Ērtai lasīšanai varam izmantot komentārus un funkciju aprakstus. |
Python lambda funkcijas praktiskie lietojumi
Python Lambda funkcija ar saraksta izpratni
Katrā iterācijā iekšpusē saraksta izpratne , mēs izveidojam jaunu lambda funkciju ar noklusējuma argumentu x (kur x ir iterācijas pašreizējais vienums). Vēlāk for cilpas ietvaros mēs izsaucam to pašu funkcijas objektu, kam ir noklusējuma arguments, izmantojot lieta() un iegūstiet vēlamo vērtību. Tādējādi ir_pāra_saraksts saglabā lambda funkciju objektu sarakstu.
Python3
is_even_list> => [> lambda> arg> => x: arg> *> 10> for> x> in> range> (> 1> ,> 5> )]> for> item> in> is_even_list:> > print> (item())> |
Izvade:
10 20 30 40
Python Lambda funkcija ar if-else
Šeit mēs izmantojam Maks lambda funkcija, lai atrastu maksimālo divus veselus skaitļus.
Python3
Max> => lambda> a, b : a> if> (a>b)>> |