Lambda

Anonimne funkcije

Jedan od moćnijih aspekata Pajtona je da omogućava stil programiranja koji se zove funkcionalno programiranje, što znači da je dozvoljeno da se koristi funkcija i kod promenljive i kod vrednosti.

Pogledajte kod

  
lambda x: x%3==0
            

To je isto kao i

  
def deljenje(x):
	return x % 3==0
            

Lambda funkciji ne moramo dati ime, ona obavlja svoj posao i vraća vrednost i bez imena, zbog čega se i zovu anonimne funkcije.

Zadatak: Možete li da pogodite šta će ovaj kod odštampati?

  
moja_lista = range(16)
print(filter(lambda x: x % 3 == 0, moja_lista))
            
Kopiraj

Kada smo ubacili lambdu u filter, filter() koristi lambdu da odredi šta da filtrira, a drugi argument (moja_lista, koje čine samo brojevi 0 - 15) je lista koja se filtrira.

Lambda Sintaksa

Lambda funkcije su definisane koristeći sledeću sintaksu:

  
lambda promenljiva: izraz
            

Lambde su korisne kada je potrebna kratka funkcija za rešavanje zadatka. Ako planirate da pravite funkciju koja će se koristiti iznova i iznova, onda je bolje koristiti def i dati ime toj funkciji.


Zadatak: Koristeći lambda, dovršite kodiranje za filter() takav da jedino iz liste odštampa "Pajton". Zapamtite, filter() uzima dva argumenta: prva funkcija govori šta da filtrirate, a druga je objekat iz kog se vrši filtriranje.

  
jezici= ["HTML", "JavaSkript", "Pajton", "Rubi"] 
print(filter(_______, _______))
            
  
jezici= ["HTML", "JavaSkript", "Pajton", "Rubi"]
print(filter( lambda x: x=="Pajton", jezici))
            
Kopiraj

Zadatak: Napraviti listu, kvadrati, koji se sastoji od kvadrata brojeva od 1 do 10. Zatim koristeći filter() i lambda izraze, ištampati samo kvadrate koji se nalaze između 30 i 70.

 
kvadrati=[x**2 for x in range(1,11)]
print(filter(lambda x: x>=30 and x<=70, kvadrati))
 
Kopiraj