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

Primjedbe

Popularno ovog meseca

Gde pronaći novosti sa facebook stranica nakon velike promene koja ga je zadesila?

Dva načina da vratite svoj Windows 10 na fabričke vrednosti

Kako preuzeti video koji je neko postavio na facebook-u bez upotrebe dodatnih programa?

Više neće biti moguć besplatan prelazak na Windows 10

Prijateljski meč ŠK "Titel" - ŠK "Bukovac"

Kako manipulisati Windows licencom pomoću slmgr komande?

Tu je novi Qt creator 4.4.0!

Fake poet

Da li je poželjno biti anoniman na internetu (ili se predstavljati punim imenom i prezimenom)?

Kosmička era može da počne! 10, 9, 8, 7.... Naravno, pre 60 godina...