V tomto článku sa pokúsime dozvedieť niečo o Python Lambda.
Definícia
Lambda je funkcia definovaná bez názvu. Môže to trvať viac argumentov, ale je povolený iba jeden výraz, ktorý je vyhodnotený a vrátený. Tam, kde sú požadované funkčné objekty, môžeme použiť funkciu lambda.
Syntax:
argumenty lambda: výraz
Príklad 1: Nasledujúca funkcia sa používa na výpočet kocky čísla.
def kocka (a):vrátiť * a * a
tlač (kocka (3))
Vyššie uvedenú funkciu je možné zapísať pomocou príkazu lambda, ako je uvedené nižšie:
p = lambda x: x * x * xtlačiť (p (3))
Príklad 2: Nasledujúca funkcia sa používa na výpočet súčtu dvoch čísel.
def sum_2 (x, y):návrat x + r
tlač (sum_2 (10,20))
Vyššie uvedenú funkciu je možné zapísať pomocou príkazu lambda, ako je uvedené nižšie:
p = lambda x, y: x + ytlačiť (p (10,20))
Príklad 3: Nasledujúci príklad pre lambda má niekoľko argumentov.
p = lambda x, y, z: x + y + ztlač (p (10, 5, 3))
Príklad 4: Táto funkcia vynásobí číslo 2 a dá sa zapísať pomocou funkcie Lambda, ako je uvedené nižšie:
def func (n):vrátiť lambda x: x * n
multiply_by_2 = func (2)
print (multiply_by_2 (11))
tlačiť (multiply_by_2 (15))
Príklad 5: Funkcia vezme funkciu ako argument a vráti výsledok.
function_argument = lambda p, f: p + f (p)print (function_argument (5, lambda p: p * p))
print (function_argument (10, lambda x: x - 3))
print (function_argument (10, lambda x: x + 5))
print (function_argument (10, lambda x: x / 5))
Príklad 6: V nasledujúcom príklade sa na zoradenie hodnôt používa lambda.
# (meno, priezvisko, vek)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
údaje.sort (key = lambda x: x [0]) # zoradiť podľa názvu
tlač (údaje)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
údaje.sort (key = lambda x: x [1]) # zoradiť podľa priezviska
tlač (údaje)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
údaje.sort (key = lambda x: x [2]) # zoradiť podľa veku
tlač (údaje)
Teraz choďte do tlmočníka python3.
Funkcia lambda sa používa v mnohých zabudovaných metódach. Nasleduje niekoľko príkladov:
1. Mapa
Táto funkcia mapuje každý prvok v poradí pomocou funkcie lambda.
Syntax:
mapa (funkcia, seq)
Príklad:
čísla = [1,2,3,4,5,6]
Tu vynásobíme každý prvok v zozname číslom 2.
mul_2 = mapa (lambda x: x * 2, čísla)
print (list (mul_2)) # Vráti mapový objekt a text ho obsadí ako zoznam.
Vo vyššie uvedenej funkcii je každý prvok zoznamu odovzdaný funkcii lambda a funkcia lambda ju vynásobí 2.
čísla = [1,2,3,4,5,6]mul_2 = mapa (lambda x: x * 2, čísla)
tlač (zoznam (mul_2))
2. Filtrovať
Táto funkcia odfiltruje všetky prvky zoznamu, pre ktoré funkcia lambda vráti hodnotu True.
Syntax:
filter (funkcia, seq)
Príklad:
čísla = [0,1,2,3,4,5,6,7,8,9,10]
nepárne_čísla = filter (lambda x: x% 2, čísla)
print (list (odd_nums)) # Vracia mapový objekt a vysiela ho ako zoznam.
nepárne_čísla = filter (lambda x: x% 2, čísla)
tlač (zoznam (nepárne_čísla))
3. Znížiť
Táto funkcia vráti jednu hodnotu uplatnením funkcie func () na nasledujúce.
Syntax:
znížiť (func, seq)
Príklad:
čísla = [0,1,2,3,4,5,6,7,8,9,10]
hodnota = zmenšiť (lambda x, y: x + y, čísla)
print (hodnota)
Vo vyššie uvedenom zozname zaberie prvé 2 prvky a vykoná sčítanie. Výsledok pridania sa pridá k tretiemu prvku atď. Nakoniec vráti jednu hodnotu.
Poznámka: Táto metóda nie je k dispozícii vo verzii python3 +.
čísla = [0,1,2,3,4,5,6,7,8,9,10]hodnota = zmenšiť (lambda x, y: x + y, čísla)
print (hodnota)
Záver
Z tohto článku sme sa dozvedeli veľa aspektov funkcie lambda. Podľa toho, čo program potrebuje, ho môžeme použiť a vytvoriť lepšie pythonovské kódovanie. Najčastejšie sa to používa na odovzdanie argumentov inej funkcii (napríklad vyššie sme videli funkcie mapovať, filtrovať a redukovať).