Funkcije lambda - ★★ Fog Developer ★★

Novo

6/recent/ticker-posts

Funkcije lambda

Python3: Funkcije lambda

17.4 Funkcije lambda

Naredba u Pythonu koja nosi naziv lambda se koristi za brzo kreiranje funkcija koje nam trebaju samo na jednom mestu u programu, te su zbog toga izuzetno pogodne za brzo rešavanje nekog problema.

Funkcijama labda se ne dodeljuje neko posebno ime, pa se zato one često nazivaju anonimne funkcije.

U suštini, komandi lambda mi prosleđujemo jedan parametar, koji je zatim praćen sa samo jednim izrazom koji čini telo ove anonimne funkcije a vrednosti tog izraza su vrednosti koje nam vraća funkcija lambda. 

Jednostavan primer funkcije lambda:

>>> s = lambda i: i + 2 
>>> s(1) 
3 
>>> s(3) 
5 
>>> 

Na ovom mestu smo ipak dali ime (promenljiva s) funkciji koju smo kreirali pomoću lambda naredbe. Odmah zatim vidimo da nam ovako definisana funkcija vraća upravo ono za šta smo je definisali.

Ovaj primer korišćenja labde je prilično nerealan.

Kada koristiti funkcije lambda?

Prava moć i potreba za upotrebom ove funkcije nastaje prilikom obrade velike količine podataka. 

Na primer, potrebno je da se sortira neka ogromna lista, po nekom određenom pravilu. Standardno, sortiranje se vrši po rastućem ili opadajućem redosledu, ali nam često takvo rešenje nije pogodno.

Vać znamo da liste poseduju svoju metodu sort i da pomoću nje možemo da zadamo argument korišćenjem ključne reči key , kako bi smo definisali način na koji se naša lista sortira.

Dakle, u ovom slučaju želimo da uradimo neko prilagođeno sortiranje. Za to bi nam bilo potrebno da  u programu definišemo posebnu funkciju.

Umesto da napišemo izdvojeni def blok naredbi, koji bi nam služio samo za potrebe ovakve jedne obrade, mi ćemo da iskoristimo komandu lambda pri definisanju ove anonimne funkcije.

>>> listanje = [{'x':2, 'y':3}, {'x':4, 'y':1}] 
>>> listanje.sort(key = lambda i: i['y']) 
>>> listanje 
[{'x': 4, 'y': 1}, {'x': 2, 'y': 3}] 
>>> 

I ovo je banalan primer, ali korišćeje funkcije lambda u realnim uslovima može da nam uštedi dosta vremena pri nekim ogromnim zahtevima.

U sledećem poglavlju, mi radimo sa kompresovanjem lista.

17.3 Blokovi od
jedne naredbe
Indeks 17.5 Kompresovanje
lista

Постави коментар

0 Коментари