Funcții Python Lambda cu exemple
Publicat: 2022-06-04Python - O introducere
Python este un limbaj de programare de uz general care este extrem de popular. Este un limbaj interpretat la nivel înalt care pune accent pe lizibilitatea codului prin utilizarea unei indentări semnificative. Python este folosit de programatori pentru a scrie coduri curate, logice, pentru proiecte de orice scară.
Python a fost conceput în anii 1980 ca un succesor al limbajului de programare ABC de Guido Van Rossum. De atunci, Python a rămas un limbaj de programare popular datorită versatilității sale.
Funcții — O introducere
Funcțiile sunt blocuri de cod care funcționează atunci când sunt apelate pot fi apelate de n ori într-un program. Sunt instrucțiuni de cod structurat și îndeplinesc o funcție specifică și pot fi folosite în orice moment. Funcțiile sunt clasificate în mod fundamental astfel:
- Funcție definită de utilizator (USF) — Funcții personalizabile care pot fi modificate conform cerințelor programatorului.
- Funcții încorporate (BIF) — Funcții care nu pot fi personalizate și care trebuie utilizate așa cum sunt disponibile.
Învață cursuri de știință a datelor online la upGrad
Funcții Python Lambda
Funcțiile Python Lambda sunt în esență anonime, deoarece nu au un nume definit. O funcție def este folosită pentru a desemna o funcție normală în Python. Între timp, cuvântul cheie Lambda este folosit pentru a defini o funcție Python anonimă.
Funcția Lambda este o funcție mică care poate lua mai multe argumente, dar o singură expresie. Ele au, de asemenea, o sintaxă mai restrictivă, dar concisă decât funcțiile obișnuite Python. Funcția lambda a fost adăugată în limbajul Python în 1994 împreună cu funcțiile map (), filter () și reduce ().
Verificați programele noastre din SUA - Data Science
Program de certificat profesional în știința datelor și analiză de afaceri | Master în Știința Datelor | Master în Știința Datelor | Program de certificat avansat în știința datelor |
Program Executive PG în Știința Datelor | Bootcamp de programare Python | Program de certificat profesional în știința datelor pentru luarea deciziilor de afaceri | Program avansat în Știința datelor |
Pentru a defini o funcție anonimă, trebuie să utilizați cuvântul cheie lambda, cum ar fi def este folosit pentru funcții normale. Există trei părți ale unei funcții anonime definite în Python:
- Cuvântul cheie lambda
- Parametri sau o variabilă legată
- Corpul funcției
Sintaxă
Sintaxa unei funcții lambda este următoarea:
Lambda p1, p2: expresie
P1 și p2 sunt parametrii aici. Nu există nicio restricție pentru adăugarea de parametri în funcția lambda. Puteți adăuga câte sau câte puține doriți. Dar funcția lambda este limitată sintactic la o singură expresie.
Exemple pentru funcția lambda în Python:
Exemplul 1
x = „Funcția Lambda”
# lambda primește trecerea la imprimare
(lambda x : print(x))(x)
Ieșire
Funcția Lambda
Exemplul 2
x = lambda a : a + 10
print(x(5))
Ieșire
15
Cursanții noștri citesc și: Învață Python online gratuit
Diferențele dintre funcția normală și funcția lambda
Funcția lambda are unele diferențe sintactice față de funcțiile normale.
- În corp sunt folosite doar expresii și nu enunțuri. Dacă sunt folosite instrucțiuni precum pass, assert, return sau raise, rezultatul va afișa o SyntaxError.
Exemplu
>>> (lambda x: afirmare x == 2)(2)
Fișier „<input>”, rândul 1
(lambda x: afirmare x == 2)(2)
^
SyntaxError: sintaxă nevalidă
- O funcție lambda poate exista doar ca o singură expresie. Chiar dacă expresia este răspândită în tot corpul folosind mai multe șiruri, ea poate rămâne doar ca o singură expresie.
Exemplu :
>>> (lambda x:
… (x % 2 și „impar” sau „par”))(3)
'ciudat'
Când argumentul lambda este impar, codul returnează șirul impar și par și atunci când nu este. Codul se întinde pe două linii, așa cum este în interiorul parantezei, dar rămâne ca o singură expresie.
- Funcția lambda nu acceptă adnotări de tip. Adăugarea de adnotări la o sintaxă lambda va provoca o eroare de sintaxă.
- IIFE sau Expresia funcției invocată imediat este o funcție executată imediat ce este definită. Este, de asemenea, cunoscut sub numele de Funcție anonimă cu autoexecuție. IIFE este o consecință directă a funcției lambda, deoarece o funcție lambda este apelabilă așa cum este definită.
Acum, să vedem diferențele cheie dintre funcțiile normale și funcțiile lambda sunt:
(Sursă)
Funcții Lambda - Avantaje și dezavantaje
Pro
- Face codul mai lizibil.
- Ideal pentru funcții care sunt folosite o singură dată.
- Ușor de înțeles și poate fi folosit pentru explicații logice simple.
Contra:
- Nu pot fi efectuate mai multe expresii independente.
- Utilizarea funcției lambda nu este ideală dacă un cod s-ar întinde pe mai mult de o linie într-o funcție normală (def).
- Toate intrările, ieșirile și operațiunile nu pot fi explicate într-un șir documentar ca într-o funcție normală.
Unde să folosiți Lambda?
Chiar dacă funcțiile def normale și funcțiile lambda au diferențe esențiale, pe plan intern, acestea sunt tratate intern.
- Utilizarea obișnuită a funcțiilor lambda în Python este pentru programarea funcțională. Puteți utiliza lambda în programarea funcțională pentru a furniza o funcție ca parametru unei alte funcții.
- Dacă trebuie să reduceți numărul de linii pentru a specifica o funcție, lambda sunt calea de urmat.
- Lambda este folosit și cu funcții de ordin superior precum map(), reduce() etc.
- Răspunsul la evenimentele cadru UI poate fi urmărit folosind funcții lambda.
Unde să vă abțineți de la utilizarea funcțiilor lambda?
- Scrierea unor funcții lambda complicate nu este o practică bună, deoarece va fi dificil de decriptat.
- Evitați utilizarea funcțiilor lambda pentru operațiuni recurente.
- Dacă codul nu urmează Ghidul de stil Python (PEP8).
Funcțiile lambda sunt testate exact ca și funcțiile obișnuite. Atât unittest cât și doctest pot fi folosite pentru aceasta.
Citiți articolele noastre populare din SUA - Știința datelor
Curs de analiză a datelor cu certificare | Curs online gratuit JavaScript cu certificare | Cele mai solicitate întrebări și răspunsuri la interviu Python |
Întrebări și răspunsuri la interviu cu analist de date | Cele mai bune opțiuni de carieră în domeniul științei datelor în SUA [2022] | SQL vs MySQL - Care este diferența |
Un ghid suprem pentru tipurile de date | Salariu pentru dezvoltatori Python în SUA | Salariu analist de date în SUA: salariu mediu |
Funcția Lambda cu filtru ()
Filter() este o funcție Python încorporată și listează ca argumente. Filtrul () este utilizat atunci când toate elementele iterabile sunt într-o listă și este returnată o altă listă care conține elemente pentru care funcția este adevărată.
Exemplu :
# Cod Python pentru a ilustra
# filter() cu lambda()
li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]
lista_finală = listă(filtru(lambda x: (x%2 != 0) , li))
print(lista_finala)
Ieșire:
[5, 7, 97, 77, 23, 73, 61]
(sursă)
Exemplu :
# Program pentru a filtra numai elementele pare dintr-o listă
lista_mea = [1, 5, 4, 6, 8, 11, 3, 12]
listă_nouă = listă(filtru(lambda x: (x%2 == 0) , lista_mea))
print(listă_nouă)
Ieșire
[4, 6, 8, 12]
Funcția Lambda cu map()
Funcția de hartă este utilizată atunci când toate elementele sunt în listă, iar lista este returnată cu elementele returnate de acea funcție pentru fiecare articol.
Exemplu : Pentru a dubla valoarea fiecărui element din listă, codul este următorul:
lista_mea = [1, 5, 4, 6, 8, 11, 3, 12]
lista_noua = lista(harta(lambda x: x * 2 , lista_mea))
print(listă_nouă)
Ieșire:
[2, 10, 8, 12, 16, 22, 6, 24]
Exemplu : Pentru a cubi fiecare număr din listă, codul este următorul
list_1 = [1,2,3,4,5,6,7,8,9]
cub = hartă(lambda x: pow(x,3), list_1)
lista (cuburi)
Ieșire:
[1, 8, 27, 64, 125, 216, 343, 512, 729]
Funcția Lambda cu funcție reduce().
Funcția reduce() din Python este o listă și un argument. Este apelat pentru a returna o listă redusă iterabilă și nouă. Este oarecum similar cu funcția de adunare.
Exemplul 1
Notă: acest exemplu este din biblioteca functools.
Pentru a obține suma unei liste, codul ar fi,
# Cod Python pentru a ilustra
# reduce() cu lambda()
# pentru a obține suma unei liste
din functools import reduce
li = [5, 8, 10, 20, 50, 100]
suma = reduce((lambda x, y: x + y), li)
imprimare (suma)
Ieșire:
193
Concluzie
Utilizarea funcțiilor lambda în Python a fost un subiect controversat în rândul programatorilor de multă vreme. Deși este adevărat că lambda pot fi înlocuite cu funcții încorporate, liste de înțelegere și biblioteci standard, este, de asemenea, necesară o înțelegere a funcțiilor lambda. Vă ajută să înțelegeți principiile fundamentale ale programării și să scrieți coduri mai bune.
Chiar dacă nu utilizați personal funcțiile lambda, ar putea exista cazuri în care le puteți întâlni în programele altora. Deci, este recomandat să aveți cunoștințe de bază despre funcțiile lambda oricum.
Dacă doriți să învățați Python cu drepturi depline și să vă îmbunătățiți cariera în știința datelor și analiza afacerilor, programul de certificat profesional online upGrad în știința datelor și analiză de afaceri de la Universitatea de top din SUA – Universitatea din Maryland este cel mai bun pariu.
Programul oferă șansa de a studia la una dintre primele 100 de universități globale și de a obține un certificat de la Maryland Smith pentru a vă crește șansele de succes în domeniu. Este un curs de 9 luni cu acces la peste 300 de parteneri de angajare, oportunități de interviu asigurate pentru studenți și șase apeluri de mentorat.
Ce sunt decoratorii în Python?
O funcție din Python care preia argumentul unei funcții și returnează o altă funcție se numește decorator. Este notat cu sintaxa decorator. Decoratorii pot fi aplicați în funcții lambda, dar nu și cu sintaxa decorator. De obicei, este implementat în scopuri de depanare. Alternativ, o funcție lambda poate fi folosită ca decorator, dar nu este recomandabil.
Care sunt argumentele în funcțiile Python Lambda?
Funcțiile Lambda, ca și funcțiile def normale, acceptă diferite moduri de transmitere a argumentelor. Acestea includ: Argument numai cuvânt cheie Argumente cuvinte cheie/ Argumente numite Varargs/ Listă variabilă de argumente Lista variabilă de argumente cheie.
Ce sunt închiderile în funcțiile Python Lambda?
Închiderile sau închiderile lexicale sunt funcții în care fiecare variabilă liberă, cu excepția parametrilor, este legată de o anumită valoare din domeniul de aplicare al funcției. Închiderile pot fi apelate de oriunde. Funcțiile lambda precum funcțiile normale de def pot fi închideri.