Krajta

Jak používat funkce Lambda v Pythonu

Jak používat funkce Lambda v Pythonu
Tento článek vysvětlí, jak používat funkce Lambda v Pythonu. Funkce Lambda lze použít k psaní stručných jednorázových textů, implementaci logiky a rychlému získání návratových hodnot, které lze přenést do jiných výrazů.

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 * y

První čá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:

12

Stejná 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 * a
squares = [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 - b
tisk (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.

Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...