V tomto článku sa dozviete o anonymnej funkcii známej tiež ako lambda funkcie. Dozviete sa, čo to je, ich syntax a ako ich používať (s príkladmi).
Čo sú funkcie lambda v Pythone?
V Pythone je anonymná funkcia funkcia, ktorá je definovaná bez názvu.
Zatiaľ čo normálne funkcie sú definované pomocou def
kľúčového slova v Pythone, anonymné funkcie sú definované pomocou lambda
kľúčového slova.
Anonymné funkcie sa preto nazývajú aj funkcie lambda.
Ako používať lambda funkcie v Pythone?
Funkcia lambda v pythone má nasledujúcu syntax.
Syntax funkcie lambda v pythone
argumenty lambda: výraz
Funkcie lambda môžu mať ľubovoľný počet argumentov, ale iba jeden výraz. Výraz sa vyhodnotí a vráti. Funkcie lambda je možné použiť všade tam, kde sú požadované funkčné objekty.
Príklad funkcie lambda v pythone
Tu je príklad funkcie lambda, ktorá zdvojnásobuje vstupnú hodnotu.
# Program to show the use of lambda functions double = lambda x: x * 2 print(double(5))
Výkon
10
Vo vyššie uvedenom programe lambda x: x * 2
je funkcia lambda. Tu je x argument a x * 2
výraz, ktorý sa vyhodnotí a vráti.
Táto funkcia nemá názov. Vráti funkčný objekt, ktorý je priradený k identifikátoru double
. Teraz to môžeme nazvať ako normálnu funkciu. Výkaz
double = lambda x: x * 2
je takmer rovnaké ako:
def double (x): návrat x * 2
Použitie funkcie lambda v pythone
Funkcie lambda používame, keď požadujeme na krátky čas bezmennú funkciu.
V Pythone ho všeobecne používame ako argument funkcie vyššieho rádu (funkcia, ktorá prijíma ďalšie funkcie ako argumenty). Lambda funkcie sú použité spolu s vstavanou funkciou rád filter()
, map()
atď.
Príklad použitia s filter ()
filter()
Funkcie v Pythone sa vo funkcii a zoznam ako argumenty.
Funkcia sa volá so všetkými položkami v zozname a vráti sa nový zoznam, ktorý obsahuje položky, pre ktoré sa funkcia vyhodnotí True
.
Tu je príklad použitia filter()
funkcie na filtrovanie iba párnych čísel zo zoznamu.
# Program to filter out only the even items from a list my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(filter(lambda x: (x%2 == 0) , my_list)) print(new_list)
Výkon
(4, 6, 8, 12)
Príklad použitia s mapou ()
map()
Funkcie v Pythone sa vo funkcii a zoznam.
Funkcia sa volá so všetkými položkami v zozname a vráti sa nový zoznam, ktorý obsahuje položky vrátené touto funkciou pre každú položku.
Tu je príklad použitia map()
funkcie na zdvojnásobenie všetkých položiek v zozname.
# Program to double each item in a list using map() my_list = (1, 5, 4, 6, 8, 11, 3, 12) new_list = list(map(lambda x: x * 2 , my_list)) print(new_list)
Výkon
(2, 10, 8, 12, 16, 22, 6, 24)