O funkciách Lambda
Funkcie lambda v pythone sú nepomenované a anonymné funkcie, pomocou ktorých je možné vytvárať výrazy, ktoré vracajú určitý druh hodnoty na základe výpočtov implementovaných do samotného výrazu. Logiku v týchto funkciách lambda možno napísať stručným spôsobom, zvyčajne niečím, čo sa ľahko zmestí do jedného riadku. Niekedy môžu byť ťažko čitateľné, najmä ak ľudia nie sú dobre oboznámení s funkciami lambda. Výhodou je však to, že udržiavajú veci pohromade v rámci blokov kódu, a pomáhajú tak lepšie pochopiť kontext.
Syntax lambda funkcií
Syntax funkcie Lambda v Pythone vyzerá takto:
vynásobiť = lambda x, y: x * yPrvá časť výrazu lambda, tesne pred symbolom dvojbodky (:), berie parametre ako argumenty. Druhá časť, za symbolom dvojbodky, musí byť návratová hodnota. Táto návratová hodnota môže byť tiež výrazom s logikou. V skutočnosti sa funkcie Lambda používajú takmer neustále na implementáciu logiky dodaných argumentov a na vrátenie konečného výsledku.
Ak chcete otestovať vyššie uvedenú funkciu Lambda, môžete použiť nasledujúce vyhlásenie:
tlačiť (vynásobiť (3, 4))Mali by ste dostať nasledujúci výstup:
12Rovnaká funkcia lambda by bola inak napísaná nasledujúcim spôsobom:
def vynásobiť (x, y):návrat x * r
tlačiť (vynásobiť (3, 4))
Obidve ukážky kódu poskytnú rovnaký výstup. Niektoré ďalšie príklady funkcií Lambda sú vysvetlené nižšie.
Pass Lambda Functions as Argumenty
Môžete použiť funkcie Lambda na vykonávanie výpočtov a dodanie návratovej hodnoty ako argumentov pre ďalšie funkcie. Metóda triedenia v Pythone má argument „kľúča“, kde môžete určiť volanú funkciu, ktorá na účely triedenia vezme jeden argument. Namiesto toho, aby ste najskôr definovali samostatnú funkciu, ktorá vráti kľúč, a potom zadajte odkaz na funkciu v argumente, môžete jednoducho použiť funkciu Lambda.
ovocie = [(2, 'jablká'), (4, 'pomaranče'), (3, 'banány')]ovocie.sort (key = lambda element: element [0])
tlač (ovocie)
Vyššie uvedený kód vyprodukuje nasledujúci výstup:
[(2, „jablká“), (3, „banány“), (4, „pomaranče“)]Môžete použiť lambdu v ktorejkoľvek takej metóde, ktorá berie ako argument volanú funkciu (napríklad metóda filtra).
Použite lambda funkcie v zozname s porozumením
Lambdu môžete použiť v porozumení zoznamu a zoznam sa riadne vytvorí z hodnôt vrátených výrazom Lambda.
get_square = lambda a: a * asquares = [get_square (x) for x in range (5)]
tlač (štvorce)
Toto vyprodukuje nasledujúci výstup:
[0, 1, 4, 9, 16]Vyššie uvedenú ukážku kódu možno zapísať aj nasledujúcim spôsobom, keď sa do funkcie lambda dodáva ako argument „x“:
squares = [(lambda x: x * x) (x) pre x v rozsahu (5)]tlač (štvorce)
Tento príklad iba ilustruje použitie funkcií Lambda v zoznamoch. Inak môžete ľahko vypočítať štvorce pomocou príkazu s minimálnym porozumením zoznamu:
tlač ([x * x pre x v rozsahu (5)])Používajte funkcie Lambda v slovníkoch Pythonu
Nasledujúca ukážka kódu ilustruje funkcie Lambda používané v pároch kľúč - hodnota v slovníku Python. Po definovaní môžete tieto funkcie kedykoľvek vyvolať.
vypočítať = 'sum': lambda a, b: a + b, 'rozdiel': lambda a, b: a - btlač (vypočítať ['súčet'] (4, 5))
tlačiť (vypočítať ['rozdiel'] (4, 5))
Po spustení vyššie uvedeného kódu by ste mali dostať nasledujúci výstup:
9-1
Záver
Funkcie Lambda poskytujú vynikajúci spôsob písania skratkových výrazov a udržiavajú veci prehľadné a usporiadané bez zbytočného vytvárania množstva pomenovaných funkcií. Nadmerné používanie funkcií Lambda však môže sťažiť čítanie kódu, najmä ak sa na kód pozerá viac ako jedna osoba. Je lepšie mať čitateľnejší kód (aj keď je podrobný), ako mať pri sebe niečo, čomu môže byť trochu ťažké porozumieť.