Python - Python Anonimna/Lambda funkcija


Šta su anonimne/lambda funkcije u Pythonu?

U Pythonu je anonimna funkcija funkcija koja je definisana bez imena. Dok su normalne funkcije definisane pomoću ključne riječi def u Pythonu, anonimne funkcije definisane su pomoću ključne riječi lambda. Zbog toga se anonimne funkcije nazivaju i lambda funkcije.



Kako koristiti anonimne/lambda funkcije u Pythonu?

Lambda funkcija u pythonu ima sljedeću sintaksu.

lambda arguments: expression

Lambda funkcije mogu imati bilo koji broj argumenata, ali samo jedan izraz. Izraz se procjenjuje i vraća. Lambda funkcije mogu se koristiti gdje god su potrebni objekti funkcije.


Primjer Lambda funkcije u Python-u

Evo primjera lambda funkcije koja udvostručuje ulaznu vrijednost.

# Program za prikaz upotrebe lambda funkcija
double = lambda x: x * 2

print(double(5))

U gornjem programu, lambda x: x * 2 je lambda funkcija. Ovdje je x argument, a x * 2 izraz koji se procjenjuje i vraća. Ova funkcija nema ime. Vraća objekt funkcije koji je dodijeljen identifikatoru double. Sada to možemo nazvati normalnom funkcijom. Izjava

double = lambda x: x * 2

je gotovo isto kao:

def double(x):
   return x * 2


Upotreba Lambda funkcije u Python-u

Lambda funkcije koristimo kada nam je za kratko vrijeme potrebna bezimena funkcija. U Pythonu ih obično koristimo kao argument funkciji višeg reda (funkcija koja uzima druge funkcije kao argumente). Lambda funkcije koriste se zajedno s ugrađenim funkcijama kao što su: filter(), map() itd.


Primjer upotrebe funkcije filter()

Funkcija filter() u Pythonu uzima funkciju i listu kao argumente. Funkcija se poziva sa svim stavkama na popisu i vraća se nova lista koja sadrži stavke za koje funkcija procjenjuje na True. Evo primjera upotrebe funkcije filter() za filtriranje samo parnih brojeva s liste.

# Program za filtriranje samo parnih stavki s popisa
my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

print(new_list)

Primjer upotrebe funkcije map()

Funkcija map() u Pythonu preuzima funkciju i listu. Funkcija se poziva sa svim stavkama na popisu i vraća se nova lista koja sadrži stavke koje je ta funkcija vratila za svaku stavku. Evo primjera funkcije map() za udvostručavanje svih stavki na listi.

# Program za udvostručavanje svake stavke na listi pomoću funkcije map()

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

print(new_list)