Funkcije lambda

17.4 Funkcije lambda

Naredba sa imenom lambda se koristi za kreiranje funkcija koje nam trebaju samo na jednom mestu u programu, te su zbog toga veoma pogodne za brzo rešavanje nekog problema. Ove funkcije nemaju ime i zato se nazivaju anonimne funkcije. U suštini, komandi lambda mi prosleđujemo jedan parametar, koji je zatim praćen sa samo jednim izrazom koji je telo ove funkcije, i vrednosti ovog izraza su vrednosti koje nam vraća funkcija lambda. Na primer:
>>> s = lambda i: i + 2 
>>> s(1) 
3 
>>> s(3) 
5 
>>> 
Ja sam na ovom mestu ipak dao ime (promenljiva s) funkciji koju sam kreirao pomoću lambda naredbe. U kasnijem delu je ova funkcija vraćala upravo ono što sam joj i zadao.
Ovo je prilično nerealan primer korišćenja naredbe lambda, Prava upotreba ove funkcije nastaje prilikom obrade velike količine podataka. Na primer, mi treba da sortiramo neku ogromnu listu, po nekom obrascu. Znamo da liste poseduju metod koji se zove sort, i ovoj metodi mi možemo da zadamo argument pomoću ključne reči key koji nam služi da definišemo način na koji se naša lista sortira (uobičajeno je da se koristi rastući ili opadajući redosled, ali šta ako nam to nije dovoljno?).
U ovom slučaju, želimo da uradimo neko prilagođeno sortiranje, pa bi nam za to bilo potrebno da definišemo posebnu funkciju, ali mi ćemo, umesto da napišemo poseban def blok, koji nam služi samo za potrebe ove jedne obrade, da iskoristimo komandu lambda pri definisanju ove 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}] 
>>> 
Iako je ovo banalan primer, korišćeje lambda izraza može da nam uštedi dosta vremena pri nekim ogromnim zahtevima.

17.3 Blokovi od
jedne naredbe
Indeks 17.5 Kompresovanje
lista

Коментари

Popularno

Tehnički problemi (i ostala tehnička čudesa) u najavi (i u bliskoj istoriji)

Izvršavanje Python programa

Instalacija uz pomoć WUBI-ja

Vredela si svakoga stiha

Python tutorijal - indeks postova

Izbor uređivača teksta (Editora)

Kreiranje izvorne datoteke

Sistem te laže?!? (prvi deo - pitanja)

Prevelika očekivanja

Kako blokirati neželjene oglase koje AdSense pokazuje na Vašoj web lokaciji