O funkcích Lambda
Lambda funkce v pythonu jsou nepojmenované a anonymní funkce, které lze použít k vytvoření výrazů, které vracejí nějakou hodnotu na základě výpočtů implementovaných do samotného výrazu. Logiku v těchto funkcích lambda lze napsat stručně, obvykle něco, co se snadno vejde do jednoho řádku. Někdy mohou být obtížně čitelné, zvláště pokud lidé nejsou dobře obeznámeni s funkcemi Lambda. Výhodou však je, že věci drží pohromadě v blocích kódu a pomáhají lépe porozumět kontextu.
Syntaxe funkcí Lambda
Syntaxe funkce Lambda v Pythonu vypadá takto:
znásobit = lambda x, y: x * yPrvní část výrazu lambda, těsně před symbolem dvojtečky (:), bere parametry jako argumenty. Druhá část, po symbolu dvojtečky, musí být návratová hodnota. Tato návratová hodnota může být také výrazem s logikou. Ve skutečnosti se funkce Lambda používají téměř po celou dobu k implementaci nějaké logiky na dodaných argumentech a následnému vrácení konečného výsledku.
K otestování výše uvedené funkce Lambda můžete použít následující příkaz:
tisk (násobení (3, 4))Měli byste získat následující výstup:
12Stejná funkce lambda by byla jinak zapsána následujícím způsobem:
def znásobit (x, y):návrat x * y
tisk (násobení (3, 4))
Oba ukázky kódu poskytnou stejný výstup. Některé další příklady funkcí Lambda jsou vysvětleny níže.
Předejte funkce Lambda jako argumenty
Pomocí funkcí Lambda můžete provádět výpočty a zadat návratovou hodnotu jako argumenty pro jiné funkce. Metoda třídění v Pythonu přebírá „klíčový“ argument, kde můžete určit volanou funkci, která pro účely řazení přebírá jeden argument. Místo toho, abyste nejprve definovali samostatnou funkci, která vrací klíč, a poté poskytli odkaz funkce na argument, můžete jednoduše použít funkci Lambda.
ovoce = [(2, 'jablka'), (4, 'pomeranče'), (3, 'banány')]ovoce.sort (key = lambda element: element [0])
tisk (ovoce)
Výše uvedený kód vytvoří následující výstup:
[(2, „jablka“), (3, „banány“), (4, „pomeranče“)]Můžete použít lambda v jakékoli takové metodě, která jako funkci vezme volanou funkci (například metoda filtru).
Použijte funkce Lambda v seznamu s porozuměním
Lambda můžete použít v porozumění seznamu a seznam bude řádně vytvořen z hodnot vrácených výrazem Lambda.
get_square = lambda a: a * asquares = [get_square (x) for x in range (5)]
tisk (čtverce)
Tím se vytvoří následující výstup:
[0, 1, 4, 9, 16]Výše uvedený kód kódu lze také zapsat následujícím způsobem, kde „x“ je dodáván funkci lambda jako argument:
squares = [(lambda x: x * x) (x) for x in range (5)]tisk (čtverce)
Tento příklad pouze ilustruje použití funkcí Lambda v porozumění seznamu. Jinak můžete snadno vypočítat druhé mocniny pomocí příkazu s minimálním porozuměním seznamu:
tisk ([x * x pro x v rozsahu (5)])Používejte funkce Lambda v slovnících Pythonu
Ukázka kódu níže ilustruje funkce Lambda používané v párech klíč – hodnota ve slovníku Pythonu. Po definování můžete tyto funkce kdykoli vyvolat.
vypočítat = 'sum': lambda a, b: a + b, 'rozdíl': lambda a, b: a - btisk (vypočítat ['součet'] (4, 5))
tisk (vypočítat ['rozdíl'] (4, 5))
Po spuštění výše uvedeného kódu byste měli získat následující výstup:
9-1
Závěr
Funkce Lambda poskytují vynikající způsob, jak psát zkratkové výrazy a udržovat věci čisté a organizované, aniž byste zbytečně vytvářeli spoustu pojmenovaných funkcí. Nadměrné používání funkcí Lambda však může znesnadnit čtení kódu, zejména když se na kód dívá více než jedna osoba. Je lepší mít čitelnější kód (i když je podrobný), než mít něco, čemu může být při revizích trochu těžké porozumět.