Funcții Python Lambda
Funcții Python Lambda sunt funcții anonime înseamnă că funcția este fără nume. După cum știm deja def cuvântul cheie este folosit pentru a defini o funcție normală în Python. În mod similar, cel lambda cuvântul cheie este folosit pentru a defini o funcție anonimă în Piton .
Sintaxa funcției Python Lambda
Sintaxă: argumente lambda : expresie
- Această funcție poate avea orice număr de argumente, dar o singură expresie, care este evaluată și returnată.
- Unul este liber să folosească funcții lambda oriunde sunt necesare obiecte funcționale.
- Trebuie să știți că funcțiile lambda sunt limitate sintactic la o singură expresie.
- Are diverse utilizări în anumite domenii de programare, pe lângă alte tipuri de expresii în funcții.
Exemplu de funcție Python Lambda
În exemplu, am definit o funcție lambda( superior ) pentru a converti un șir în majuscule folosind superior() .
Acest cod definește o funcție lambda numită upper> care ia un șir ca argument și îl convertește în majuscule folosind upper()> metodă. Apoi aplică această funcție lambda șirului „techcodeview.com” și tipărește rezultatul
Python3
str1> => 'techcodeview.com'> upper> => lambda> string: string.upper()> print> (upper(str1))> |
Ieșire:
GEEKSFORGEEKS
Utilizarea funcției Lambda în Python
Să vedem câteva dintre utilizările practice ale funcției Python lambda.
Verificarea condiției Utilizând funcția lambda Python
Aici „format_numeric” apelează funcția lambda, iar num este transmis ca parametru pentru a efectua operațiuni.
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> ))> |
Ieșire:
Int formatting: 1.000000e+06 float formatting: 999,999.79
Diferența dintre funcțiile Lambda și funcția definită def
Codul definește o funcție cub folosind atât ' def'> cuvânt cheie și o funcție lambda. Acesta calculează cubul unui număr dat (5 în acest caz) utilizând ambele abordări și tipărește rezultatele. Ieșirea este 125 pentru ambele ' def'> și funcțiile lambda, demonstrând că realizează același calcul cub.
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> ))> |
Ieșire:
Using function defined with `def` keyword, cube: 125 Using lambda function, cube: 125
După cum putem vedea în exemplul de mai sus, atât cub() funcţia şi lambda_cube() funcția se comportă la fel și conform intenției. Să analizăm puțin mai mult exemplul de mai sus:
| Cu functie lambda | Fara functie lambda |
|---|---|
| Acceptă declarații cu o singură linie uneori care returnează o anumită valoare. | Suportă orice număr de linii în interiorul unui bloc funcțional |
| Bun pentru efectuarea de operațiuni scurte/manipulări de date. | Bun pentru orice cazuri care necesită mai multe linii de cod. |
| Utilizarea funcției lambda poate reduce uneori lizibilitatea codului. | Putem folosi comentarii și descrieri de funcții pentru a fi ușor de citit. |
Utilizări practice ale funcției Python lambda
Funcția Python Lambda cu înțelegere a listei
La fiecare iterație din interiorul înțelegerea listei , creăm o nouă funcție lambda cu un argument implicit de x (unde x este elementul curent din iterație). Mai târziu, în interiorul buclei for, apelăm același obiect funcție având argumentul implicit folosind articol() și obțineți valoarea dorită. Prin urmare, is_even_list stochează lista de obiecte cu funcție lambda.
Python3
is_even_list> => [> lambda> arg> => x: arg> *> 10> for> x> in> range> (> 1> ,> 5> )]> for> item> in> is_even_list:> > print> (item())> |
Ieșire:
10 20 30 40
Funcția Python Lambda cu if-else
Aici folosim Max lambda pentru a găsi maximum două numere întregi.
Python3
Max> => lambda> a, b : a> if> (a>b)>>> |