O Lambda funkcijama
Lambda funkcije u pythonu su neimenovane i anonimne funkcije koje se mogu koristiti za stvaranje izraza koji vraćaju neku vrstu vrijednosti na temelju izračuna implementiranih u samom izrazu. Logika u ovim lambda funkcijama može se napisati sažeto, obično nešto što lako stane u jedan redak. Ponekad ih je teško pročitati, pogotovo ako ljudi nisu dobro upućeni u Lambda funkcije. Međutim, oni imaju prednost držanja stvari unutar blokova koda i pomažu u boljem razumijevanju konteksta.
Sintaksa Lambda funkcija
Sintaksa Lambda funkcije u Pythonu izgleda ovako:
pomnoži = lambda x, y: x * yPrvi dio lambda izraza, neposredno prije dvotačke (:), uzima parametre kao argumente. Drugi dio, nakon simbola dvotačke, mora biti povratna vrijednost. Ova povratna vrijednost može biti i izraz s logikom. Zapravo, Lambda funkcije koriste se gotovo cijelo vrijeme za implementaciju neke logike na dostavljenim argumentima, a zatim za vraćanje konačnog rezultata.
Da biste testirali gore navedenu Lambda funkciju, možete upotrijebiti sljedeću izjavu:
ispis (množenje (3, 4))Trebali biste dobiti sljedeći izlaz:
12Ista bi se lambda funkcija inače napisala na sljedeći način:
def multiply (x, y):povrat x * y
ispis (množenje (3, 4))
Oba uzorka koda dat će isti izlaz. U nastavku su objašnjeni još neki primjeri Lambda funkcija.
Lambda funkcije prenijeti kao argumente
Možete koristiti Lambda funkcije za izračun i isporuku povratne vrijednosti kao argumente drugim funkcijama. Metoda sortiranja u Pythonu uzima argument "ključ" gdje možete odrediti funkciju koja se može pozvati i koja uzima jedan argument u svrhe sortiranja. Umjesto da prvo definirate zasebnu funkciju koja vraća ključ, a zatim navedete referencu na argument, možete jednostavno koristiti Lambda funkciju.
voće = [(2, 'jabuke'), (4, 'naranče'), (3, 'banane')]voće.razvrstavanje (ključ = lambda element: element [0])
tisak (voće)
Gornji kod će dati sljedeći izlaz:
[(2, 'jabuke'), (3, 'banane'), (4, 'naranče')]Lambdu možete koristiti u bilo kojoj takvoj metodi koja uzima opozivnu funkciju kao argument (na primjer, metoda filtra).
Upotrijebite Lambda funkcije u Poimanju razumijevanja
Lambdu možete koristiti u razumijevanju popisa i popis će se pravilno stvoriti od vrijednosti koje vraća izraz Lambda.
get_square = lambda a: a * akvadrati = = get_square (x) za x u rasponu (5)]
ispis (kvadratići)
To će proizvesti sljedeći rezultat:
[0, 1, 4, 9, 16]Gornji uzorak koda također se može napisati na sljedeći način gdje se "x" daje lambda funkciji kao argument:
kvadrati = = (lambda x: x * x) (x) za x u rasponu (5)]ispis (kvadratići)
Ovaj primjer samo ilustrira upotrebu Lambda funkcija u razumijevanju popisa. Inače možete lako izračunati kvadrate koristeći minimalnu izjavu o razumijevanju popisa:
ispis ([x * x za x u rasponu (5)])Koristite Lambda funkcije u Python rječnicima
Uzorak koda u nastavku ilustrira Lambda funkcije korištene unutar parova ključ / vrijednost u Python rječniku. Jednom definirane, ove funkcije možete pozvati bilo kada.
izračunati = 'zbroj': lambda a, b: a + b, 'razlika': lambda a, b: a - bispis (izračunaj ['zbroj'] (4, 5))
ispis (izračunaj ['razlika'] (4, 5))
Nakon pokretanja gornjeg koda trebali biste dobiti sljedeći izlaz:
9-1
Zaključak
Lambda funkcije pružaju izvrstan način za pisanje stenografskih izraza i održavanje stvari urednom i organiziranom bez nepotrebnog stvaranja puno imenovanih funkcija. Međutim, pretjerano korištenje Lambda funkcija može otežati čitanje koda, pogotovo kada kod gleda više osoba. Bolje je imati čitljiviji kôd (čak i ako je opširan) nego imati nešto što je možda malo teško razumjeti na ponovnim posjetima.