Ebben a cikkben megpróbáljuk megismerni a Python Lambdát.
Meghatározás
A Lambda egy név nélkül definiált függvény. Ez több argumentumot is igénybe vehet, de csak egy olyan kifejezés engedélyezett, amelyet kiértékelnek és visszaküldenek. Ahol függvényobjektumok szükségesek, ott használhatjuk a lambda függvényt.
Szintaxis:
lambda érvek: kifejezés
1. példa: Az alábbi függvény egy szám kockájának kiszámítására szolgál.
def kocka (a):vissza a * a * a
nyomtatás (kocka (3))
A fenti függvény lambda használatával írható, az alábbiak szerint:
p = lambda x: x * x * xnyomtatás (p (3))
2. példa: Az alábbi függvény két szám összegének kiszámítására szolgál.
def összeg_2 (x, y):adja vissza x + y
nyomtatás (összeg_2 (10,20))
A fenti függvény lambda használatával írható, az alábbiak szerint:
p = lambda x, y: x + ynyomtatás (p (10,20))
3. példa: Az alábbi példa a lambda esetében több érvet tartalmaz.
p = lambda x, y, z: x + y + znyomtatás (p (10, 5, 3))
4. példa: Ez a függvény megszorozza a számot 2-vel, és az alábbiak szerint írható a Lambda függvény segítségével:
def func (n):vissza lambda x: x * n
multiply_by_2 = func (2)
nyomtatás (szorozva_val_2 (11))
nyomtatás (szorozva_vel_2 (15))
5. példa: A függvény argumentumként veszi fel a függvényt, és az eredményt adja vissza.
function_argument = lambda p, f: p + f (p)nyomtatás (function_argument (5, lambda p: p * p))
nyomtatás (function_argument (10, lambda x: x - 3))
nyomtatás (function_argument (10, lambda x: x + 5))
nyomtatás (function_argument (10, lambda x: x / 5))
6. példa: Az alábbi példában a lambda értékek rendezésére szolgál.
# (név, vezetéknév, életkor)adatok = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
adat.rendezés (kulcs = lambda x: x [0]) # rendezés név alapján
nyomtatás (adatok)
adatok = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
adat.rendezés (kulcs = lambda x: x [1]) # rendezés vezetéknév alapján
nyomtatás (adatok)
adatok = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
adat.rendezés (kulcs = lambda x: x [2]) # rendezés életkor alapján
nyomtatás (adatok)
Most menj be a python3 tolmácsba.
A lambda függvényt számos beépített módszer használja. A következő néhány példa:
1. Térkép
Ez a függvény minden elemet egymás után térképez fel a lambda függvény segítségével.
Szintaxis:
térkép (függvény, szekvencia)
Volt:
szám = [1,2,3,4,5,6]
Itt a lista minden elemét megszorozzuk 2-vel.
mul_2 = térkép (lambda x: x * 2, szám)
print (list (mul_2)) # Visszaadja a térképobjektumot, és felírja listaként.
A fenti függvényben a lista minden elemét átadják a lambda függvénynek, és a lambda függvény meg fogja szorozni 2-vel.
szám = [1,2,3,4,5,6]mul_2 = térkép (lambda x: x * 2, szám)
nyomtatás (lista (mul_2))
2. Szűrő
Ez a függvény kiszűri a lista összes elemét, amelyre a lambda függvény True-t ad vissza.
Szintaxis:
szűrő (függvény, szekvencia)
Volt:
szám = [0,1,2,3,4,5,6,7,8,9,10]
páratlan_szám = szűrő (lambda x: x% 2, szám)
print (list (páratlan_számok)) # Visszaadja a térképobjektumot, és felírja listaként.
páratlan_szám = szűrő (lambda x: x% 2, szám)
nyomtatás (lista (páratlan_számok))
3. Csökkentse
Ez a függvény egyetlen értéket ad vissza a func () függvénynek a szekvenciára való alkalmazásával.
Szintaxis:
csökkentés (func, seq)
Volt:
szám = [0,1,2,3,4,5,6,7,8,9,10]
érték = csökkent (lambda x, y: x + y, szám)
nyomtatás (érték)
A fenti listában az első 2 elemet veszi fel, és kiegészítést hajt végre. Az összeadás eredménye hozzáadódik a harmadik elemhez és így tovább. Végül egyetlen értéket ad vissza.
Megjegyzés: Ez a módszer nem érhető el a python3 + verzióban.
szám = [0,1,2,3,4,5,6,7,8,9,10]érték = csökkent (lambda x, y: x + y, szám)
nyomtatás (érték)
Következtetés
Ebből a cikkből megtudtuk a lambda funkció számos aspektusát. Attól függően, hogy a programnak mire van szüksége, használhatjuk és javíthatjuk a python kódolást. Ezt használják leggyakrabban az argumentumok átadásához egy másik függvényhez (például láttuk, hogy a fenti függvények leképezik, szűrik és csökkentik).