Piton

Python Lambda

Python Lambda

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 * x
ispis (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 + y
ispis (p (10,20))

Primjer 3: Primjer u nastavku za lambda uzima više argumenata.

p = lambda x, y, z: x + y + z
ispis (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.

brojevi = [0,1,2,3,4,5,6,7,8,9,10]
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).

Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...
Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...