A Lambda funkciókról
A python Lambda függvényei meg nem nevezett és névtelen függvények, amelyek felhasználhatók olyan kifejezések létrehozására, amelyek valamilyen értéket adnak vissza a kifejezésben végrehajtott számítások alapján. Ezekben a lambda függvényekben a logika tömören írható, általában olyasmi, ami könnyen elfér egy sorban. Néha nehezen olvashatók, főleg, ha az emberek nem ismerik jól a Lambda funkcióit. Ennek azonban előnye, hogy kódblokkokban tartják a dolgokat, és jobban segítenek megérteni a kontextust.
A lambda funkciók szintaxisa
A Python Lambda függvényének szintaxisa a következőképpen néz ki:
szoroz = lambda x, y: x * yA lambda kifejezés első része, közvetlenül a kettőspont (:) szimbólum előtt, paramétereket vesz argumentumként. A kettőspont szimbólum után a második résznek visszatérési értéknek kell lennie. Ez a visszatérési érték lehet logikai kifejezés is. Valójában a Lambda függvényeket szinte folyamatosan használják, hogy bizonyos logikát valósítsanak meg a megadott argumentumokon, majd visszaadják a végeredményt.
A Lambda függvény fent leírt teszteléséhez használhatja a következő állítást:
nyomtatás (szorzás (3, 4))A következő kimenetet kell kapnia:
12Ugyanezt a lambda függvényt egyébként a következő módon írnánk:
def szorozni (x, y):vissza x * y
nyomtatás (szorzás (3, 4))
Mindkét kódminta ugyanazt a kimenetet adja. Néhány további példát a Lambda funkciókra az alábbiakban ismertetünk.
Pass Lambda függvények argumentumként
A Lambda függvényekkel számításokat végezhet, és a visszatérési értéket argumentumként megadhatja más függvényeknek. A rendezési módszer a Pythonban egy „kulcs” argumentumot vesz igénybe, ahol megadhat egy hívható függvényt, amely rendezés céljából egyetlen argumentumot vesz fel. Ahelyett, hogy először meghatározna egy külön függvényt, amely visszaad egy kulcsot, majd megadja a függvény hivatkozását az argumentumra, egyszerűen használhat egy Lambda függvényt.
gyümölcs = [(2, 'alma'), (4, 'narancs'), (3, 'banán')]gyümölcsök.rendezés (kulcs = lambda elem: elem [0])
nyomtatás (gyümölcs)
A fenti kód a következő kimenetet hozza létre:
[(2, „alma”), (3, „banán”), (4, „narancs”)]Bármely olyan módszerben használhatja a lambda-t, amely hívható függvényt vesz fel argumentumként (például szűrési módszer).
Használja a Lambda függvényeket a listamegértésekben
Használhatja a Lambda-t a listamegértésekben, és a Lambda kifejezés által visszaadott értékekből egy lista megfelelően létrejön.
get_square = lambda a: a * anégyzetek = [get_square (x) x-re a tartományban (5)]
nyomtatás (négyzetek)
Ez a következő kimenetet eredményezi:
[0, 1, 4, 9, 16]A fenti kódmintát a következõ módon is fel lehet írni, ahol argumentumként „x” -t adunk a lambda függvénynek:
négyzetek = [(lambda x: x * x) (x) x-re az (5) tartományban]nyomtatás (négyzetek)
Ez a példa csak a Lambda függvények használatát szemlélteti a listamegértésekben. Egyébként egyszerűen kiszámíthatja a négyzeteket egy minimális listamegértési utasítással:
nyomtatás ([x * x az x tartományban (5)])Használja a Lambda függvényeket a Python szótárakban
Az alábbi kódminta a Lambda függvényeket szemlélteti a Python szótár kulcs-érték párjain belül. Miután meghatározta, bármikor meghívhatja ezeket a függvényeket.
kiszámítja = 'összeg': lambda a, b: a + b, 'különbség': lambda a, b: a - bnyomtatás (kiszámítja az [összeget] (4, 5))
nyomtatás (kiszámítja a [különbséget] (4, 5))
A fenti kód futtatása után a következő kimenetet kell kapnia:
9-1
Következtetés
A Lambda funkciók kiváló lehetőséget nyújtanak gyorsírási kifejezések írására és a dolgok rendezettségére és rendezésére anélkül, hogy feleslegesen hoznának létre sok megnevezett funkciót. A Lambda funkciók túlzott használata azonban megnehezítheti a kód olvasását, különösen akkor, ha a kódot egynél több személy nézi. Jobb, ha olvashatóbb kód van (még akkor is, ha bőbeszédű), mint valami, amit kissé nehéz megérteni az újbóli látogatáskor.