Python

Ako používať lambda funkcie v Pythone

Ako používať lambda funkcie v Pythone
Tento článok vysvetlí, ako používať funkcie Lambda v Pythone. Funkcie lambda je možné použiť na písanie stručných jednorázových riadkov, implementáciu logiky a rýchle získanie návratových hodnôt, ktoré je možné vložiť do ďalších výrazov.

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 * y

Prvá č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:

12

Rovnaká 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 * a
squares = [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 - b
tlač (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ť.

Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...
S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...
Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...