U ovom ćemo članku pokušati naučiti o Python Lambdi.
Definicija
Lambda je funkcija definirana bez imena. To može potrajati više argumenata, ali dopušten je samo jedan izraz koji se procjenjuje i vraća. Tamo gdje su potrebni objekti funkcije, možemo koristiti lambda funkciju.
Sintaksa:
lambda argumenti: izraz
Primjer 1: Funkcija u nastavku koristi se za izračunavanje kocke broja.
def kocka (a):vrati a * a * a
ispis (kocka (3))
Gornju funkciju možemo napisati pomoću lambda, kao što je prikazano dolje:
p = lambda x: x * x * xispis (p (3))
Primjer 2: Funkcija u nastavku koristi se za izračunavanje zbroja dva broja.
def sum_2 (x, y):povratak x + y
ispis (zbroj_2 (10,20))
Gornju funkciju možemo napisati pomoću lambda, kao što je prikazano dolje:
p = lambda x, y: x + yispis (p (10,20))
Primjer 3: Primjer u nastavku za lambda uzima više argumenata.
p = lambda x, y, z: x + y + zispis (p (10, 5, 3))
Primjer 4: Ova funkcija množi broj s 2 i može se zapisati pomoću Lambda funkcije kao dolje:
def func (n):vrati lambda x: x * n
pomnožiti_ sa_2 = func (2)
ispis (množenje_by_2 (11))
ispis (množenje_by_2 (15))
Primjer 5: Funkcija uzima funkciju kao argument i vraća rezultat.
function_argument = lambda p, f: p + f (p)ispis (argument_funkcije (5, lambda p: p * p))
ispis (argument_funkcije (10, lambda x: x - 3))
ispis (argument_funkcije (10, lambda x: x + 5))
ispis (argument_funkcije (10, lambda x: x / 5))
Primjer 6: U donjem primjeru lambda se koristi za sortiranje vrijednosti.
# (ime, prezime, dob)podaci = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
podaci.razvrstavanje (ključ = lambda x: x [0]) # sortiranje na temelju imena
ispis (podaci)
podaci = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
podaci.sortiraj (ključ = lambda x: x [1]) # sortiraj na osnovu prezimena
ispis (podaci)
podaci = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
podaci.sortiraj (ključ = lambda x: x [2]) # sortiraj na temelju dobi
ispis (podaci)
Sada idite na python3 interpreter.
Lambda funkcija koristi se u mnogim ugrađenim metodama. Slijedi nekoliko primjera:
1. Karta
Ova funkcija mapira svaki element u slijedu pomoću lambda funkcije.
Sintaksa:
karta (funkcija, slijedeće)
Primjer:
brojevi = [1,2,3,4,5,6]
Ovdje ćemo pomnožiti svaki element na popisu s 2.
mul_2 = karta (lambda x: x * 2, brojevi)
print (list (mul_2)) # Vraća objekt karte i upisuje ga kao popis.
U gornjoj funkciji, svaki element popisa prosljeđuje se lambda funkciji i lambda funkcija će ga pomnožiti s 2.
brojevi = [1,2,3,4,5,6]mul_2 = karta (lambda x: x * 2, brojevi)
ispis (popis (mul_2))
2. filtar
Ova funkcija filtrira sve elemente popisa za koje lambda funkcija vraća True.
Sintaksa:
filtar (funkcija, slijedeće)
Primjer:
brojevi = [0,1,2,3,4,5,6,7,8,9,10]
neparni_brojevi = filtar (lambda x: x% 2, brojevi)
print (list (odd_nums)) # Vraća objekt karte i upisuje ga kao popis.
neparni_brojevi = filtar (lambda x: x% 2, brojevi)
ispis (popis (neparni_brojevi))
3. Smanjiti
Ova funkcija vraća jednu vrijednost primjenom funkcije func () na seq.
Sintaksa:
smanjiti (func, seq)
Primjer:
brojevi = [0,1,2,3,4,5,6,7,8,9,10]
vrijednost = smanjiti (lambda x, y: x + y, brojevi)
ispis (vrijednost)
Na gornjem popisu uzeti će prva 2 elementa i izvršiti dodavanje. Rezultat zbrajanja dodati će se trećem elementu i tako dalje. Konačno, vratit će jednu vrijednost.
Napomena: Ova metoda nije dostupna u verziji python3 +.
brojevi = [0,1,2,3,4,5,6,7,8,9,10]vrijednost = smanjiti (lambda x, y: x + y, brojevi)
ispis (vrijednost)
Zaključak
Iz ovog članka naučili smo mnoge aspekte lambda funkcije. Ovisno o tome što program treba, možemo ga koristiti i poboljšati python kodiranje. To se najčešće koristi za prosljeđivanje argumenata drugoj funkciji (na primjer, vidjeli smo gore kako se funkcije mapiraju, filtriraju i smanjuju).