Co jsou funkce Lambda a jak je používat?



Naučte se funkce lambda v Pythonu spolu s rozdílem mezi normálními funkcemi a funkcemi lambda a v tom, jak je lze použít ve filtru (), mapě (), zmenšit ().

Název je konvence, která se používá k označení nebo adresování jakékoli entity. Téměř všechno kolem nás má své jméno. Tomu odpovídá i svět programování. Je ale nutné pojmenovat všechno? Nebo můžete mít něco, co je jen „anonymní“? Odpověď je ano. ' poskytuje funkce Lambda, známé také jako anonymní funkce, které jsou ve skutečnosti bezejmenné. Pojďme se tedy v následující posloupnosti dozvědět více o těchto „anonymních tajemstvích“ Pythonu.

Tak pojďme začít :)





Proč používat Python Lambda Functions?


Hlavní účel anonymních funkcí se objeví, když potřebujete nějakou funkci jen jednou. Mohou být vytvořeny kdekoli jsou potřeba. Z tohoto důvodu jsou funkce Python Lambda známé také jako vyhoditelné funkce, které se používají spolu s dalšími předdefinovanými funkcemi, jako je filter (), map () atd. Tyto funkce pomáhají snížit počet řádků vašeho kódu ve srovnání s normální .

Abychom to dokázali, pojďme dále a naučme se funkce Python Lambda.



Co jsou funkce Python Lambda?


Funkce Python Lambda jsou funkce, které nemají žádný název. Jsou také známé jako anonymní nebo bezejmenné funkce. Slovo „lambda“ není jméno, ale klíčové slovo. Toto klíčové slovo určuje, že následující funkce je anonymní.

Nyní, když jste si vědomi toho, na co tyto anonymní funkce odkazují, pojďme se posunout dále, abychom zjistili, jak tyto funkce Pythonu Lambda píšete.

Jak psát funkce Lambda v Pythonu?

Funkce Lambda je vytvořena pomocí operátoru lambda a její syntaxe je následující:



SYNTAX:

Argumenty lambda: výraz

Krajta funkce lambda může mít libovolný počet argumentů, ale stačí to jeden výraz. Vstupy nebo argumenty mohou začínat nulou a jít až k jakémukoli limitu. Stejně jako jakékoli jiné funkce je naprosto v pořádku mít funkce lambda bez vstupů. Proto můžete mít funkce lambda v kterémkoli z následujících formátů:

PŘÍKLAD:

lambda: „Upřesněte účel“

Funkce lambda zde nepřijímá žádné argumenty.

PŘÍKLAD:

lambda ajeden: „Upřesněte použití ajeden'

Zde lambda přijímá jeden vstup, který je ajeden.

java program pro připojení k databázi mysql

Podobně můžete mít lambda ajeden, do2, do3..nan.

Uveďme několik příkladů, které to dokážou:

PŘÍKLAD 1:

a = lambda x: x * x tisk (a (3))

VÝSTUP: 9

PŘÍKLAD 2:

a = lambda x, y: x * y tisk (a (3,7))

VÝSTUP: dvacet jedna

Jak vidíte, vzal jsem si zde dva příklady. První příklad využívá funkci lambda pouze s jedním výrazem, zatímco ve druhém příkladu jsou předány dva argumenty. Upozorňujeme, že obě funkce mají jediný výraz následovaný argumenty. Funkce lambda proto nelze použít tam, kde potřebujete víceřádkové výrazy.

Na druhou stranu normální funkce pythonu mohou ve svých definicích funkcí brát libovolný počet příkazů.

Jak anonymní funkce zmenšují velikost kódu?

Před porovnáním požadovaného množství kódu si nejprve zapíšeme jeho syntaxi a porovnejte to s funkcemi lambda popsanými výše.

Jakákoli normální funkce v Pythonu je definována pomocí a def klíčové slovo takto:

SYNTAX:

def název_funkce (parametry):
prohlášení

Jak vidíte, množství kódu požadovaného pro funkci lambda je o dost menší než u normálních funkcí.

Přepíšeme nyní příklad, který jsme si vzali dříve, pomocí běžných funkcí.

PŘÍKLAD:

def my_func (x): návrat x * x tisk (my_func (3))

VÝSTUP: 9

jak nastavit cestu v Javě

Jak vidíte, ve výše uvedeném příkladu potřebujeme v rámci my_func návratový příkaz k vyhodnocení hodnoty čtverce 3. Naopak funkce lambda tento návratový příkaz nevyužívá, ale tělo anonymní funkce je zapsán na stejném řádku jako samotná funkce, za symbol dvojtečky. Proto je velikost funkce menší než velikost my_func.

Funkce lambda ve výše uvedených příkladech se však nazývají pomocí jiných A. Děje se to proto, že tyto funkce jsou bezejmenné, a proto vyžadují, aby bylo nějaké jméno voláno. Tato skutečnost se ale může jevit jako matoucí, proč používat takové bezejmenné funkce, když jim musíte přiřadit nějaké jiné jméno? A samozřejmě po přiřazení jména a mé funkci už nezůstane bezejmenný! Že jo?

Je to legitimní otázka, ale jde o to, že to není správný způsob používání těchto anonymních funkcí.

Anonymní funkce se nejlépe používají v jiných funkce vyššího řádu které buď použijí nějakou funkci jako argument, nebo vrátí funkci jako výstup. Abychom to dokázali, pojďme nyní k dalšímu tématu.

Funkce Python Lambda v rámci uživatelem definovaných funkcí:

Jak bylo uvedeno výše, funkce lambda se používají v rámci jiných funkcí k označení nejlepší výhody.

Následující příklad se skládá z new_func, což je normální funkce pythonu, která přebírá jeden argument x. Tento argument se poté přidá k neznámému argumentu y, který se dodává prostřednictvím funkce lambda.

PŘÍKLAD:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

VÝSTUP:

6
5
Jak vidíte, ve výše uvedeném příkladu je funkce lambda, která je přítomna v new_func, volána vždy, když použijeme new_func (). Pokaždé můžeme argumentům předat samostatné hodnoty.

Nyní, když jste viděli, jak používat anonymní funkce ve funkcích vyššího řádu, pojďme nyní dopředu, abychom pochopili jedno z jeho nejpopulárnějších použití, které je v metodách filter (), map () a redukovat ().

Jak používat anonymní funkce ve filtru (), mapě () a zmenšit ():

Anonymní funkce uvnitř filtr():

filtr():

Metoda filter () se používá k filtrování daných iterable (seznamů, sad atd.) Pomocí jiné funkce, předané jako argument, k testování všech prvků na true nebo false.

Syntaxe této funkce je:

SYNTAX:

filtr (funkce, iterovatelný)

Nyní zvažte následující příklad:

PŘÍKLAD:

my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

VÝSTUP: [6]

Zde my_list je seznam iterovatelných hodnot, které jsou předány funkci filtru. Tato funkce používá funkci lambda ke kontrole, zda jsou v seznamu nějaké hodnoty, které se po dělení 3 rovnou 2. Výstup se skládá ze seznamu, který splňuje výraz přítomný v anonymní funkci.

mapa():

Funkce map () v Pythonu je funkce, která aplikuje danou funkci na všechny iterovatelné položky a vrátí nový seznam.

SYNTAX:

mapa (funkce, iterovatelná)

Vezměme si příklad, který předvede použití funkcí lambda ve funkci map ():

PŘÍKLAD:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

VÝSTUP:

[Pravda, pravda, pravda, pravda, nepravda, pravda, pravda]

Výše uvedený výstup ukazuje, že kdykoli se hodnota iterable nerovná 2 při dělení 3, vrácený výsledek by měl být True. Proto pro všechny prvky v my_list vrací true kromě hodnoty 6, když se podmínka změní na False.

snížit():

Funkce redukovat () se používá k použití některé další funkce na seznam prvků, které se jí předávají jako parametr, a nakonec vrátí jednu hodnotu.

Syntaxe této funkce je následující:

SYNTAX:

zmenšit (funkce, posloupnost)

PŘÍKLAD:

z functools import zmenšit zmenšit (lambda a, b: a + b, [23,21,45,98])

Výše uvedený příklad je znázorněn na následujícím obrázku:

redukovat python lambda-edureka

VÝSTUP: 187

Výstup jasně ukazuje, že všechny prvky seznamu jsou přidáváno průběžně vrátit konečný výsledek.

Tímto se dostáváme na konec tohoto článku o „Python Lambda“. Doufám, že máte jasno ve všem, co bylo s vámi sdíleno. Ujistěte se, že cvičíte co nejvíce a vraťte své zkušenosti.

jak nainstalovat php 7 na Windows 10

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu „Python Lambda“ a my se vám ozveme co nejdříve.

Chcete-li získat podrobné znalosti o Pythonu spolu s jeho různými aplikacemi, můžete se zaregistrovat naživo s nepřetržitou podporou a doživotním přístupem.