V tomto článku se pokusíme dozvědět více o Python Lambda.
Definice
Lambda je funkce definovaná bez názvu. To může trvat více argumentů, ale je povolen pouze jeden výraz, který je vyhodnocen a vrácen. Tam, kde jsou vyžadovány funkční objekty, můžeme použít funkci lambda.
Syntax:
Argumenty lambda: výraz
Příklad 1: Níže uvedená funkce se používá k výpočtu krychle čísla.
def kostka (a):vrátit * a * a
tisk (krychle (3))
Výše uvedenou funkci lze zapsat pomocí lambda, jak je znázorněno níže:
p = lambda x: x * x * xtisk (p (3))
Příklad 2: Níže uvedená funkce se používá k výpočtu součtu dvou čísel.
def sum_2 (x, y):návrat x + y
tisk (sum_2 (10,20))
Výše uvedenou funkci lze zapsat pomocí lambda, jak je znázorněno níže:
p = lambda x, y: x + ytisk (p (10,20))
Příklad 3: Níže uvedený příklad pro lambda má několik argumentů.
p = lambda x, y, z: x + y + ztisk (p (10, 5, 3))
Příklad 4: Tato funkce vynásobí číslo 2 a lze ji zapsat pomocí funkce Lambda, jak je uvedeno níže:
def func (n):vrátit lambda x: x * n
multiply_by_2 = func (2)
tisk (multiply_by_2 (11))
tisk (multiply_by_2 (15))
Příklad 5: Funkce bere funkci jako argument a vrátí výsledek.
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))
Příklad 6: V níže uvedeném příkladu se lambda používá k řazení hodnot.
# (jméno, příjmení, věk)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sort (key = lambda x: x [0]) # seřadit podle jména
tisk (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sort (key = lambda x: x [1]) # setřídění podle příjmení
tisk (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sort (key = lambda x: x [2]) # třídění podle věku
tisk (data)
Nyní jděte do tlumočníka python3.
Funkce lambda se používá v mnoha vestavěných metodách. Následuje několik příkladů:
1. Mapa
Tato funkce mapuje každý prvek v pořadí pomocí funkce lambda.
Syntax:
mapa (funkce, seq)
Příklad:
počty = [1,2,3,4,5,6]
Zde vynásobíme každý prvek v seznamu 2.
mul_2 = mapa (lambda x: x * 2, čísla)
print (list (mul_2)) # Vrací objekt mapy a vysílá jej jako seznam.
Ve výše uvedené funkci je každý prvek seznamu předán funkci lambda a funkce lambda ji vynásobí 2.
počty = [1,2,3,4,5,6]mul_2 = mapa (lambda x: x * 2, čísla)
tisk (seznam (mul_2))
2. Filtr
Tato funkce odfiltruje všechny prvky seznamu, pro které funkce lambda vrací True.
Syntax:
filtr (funkce, seq)
Příklad:
počty = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums)) # Vrací objekt mapy a vysílá jej jako seznam.
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums))
3. Snížit
Tato funkce vrací jednu hodnotu použitím funkce func () na seq.
Syntax:
snížit (func, seq)
Příklad:
počty = [0,1,2,3,4,5,6,7,8,9,10]
hodnota = zmenšit (lambda x, y: x + y, nums)
tisk (hodnota)
Ve výše uvedeném seznamu bude trvat první 2 prvky a provede přidání. Výsledek přidání bude přidán ke třetímu prvku a tak dále. Nakonec vrátí jednu hodnotu.
Poznámka: Tato metoda není k dispozici ve verzi python3 +.
počty = [0,1,2,3,4,5,6,7,8,9,10]hodnota = zmenšit (lambda x, y: x + y, nums)
tisk (hodnota)
Závěr
Z tohoto článku jsme se naučili mnoho aspektů funkce lambda. V závislosti na tom, co program potřebuje, jej můžeme použít a vytvořit lepší kódování v pythonu. To se nejčastěji používá k předání argumentů jiné funkci (například jsme viděli výše funkce mapovat, filtrovat a redukovat).