⊗pyPmFnLa 16 of 129 menu

Lambda funkce v Pythonu

Předpokládejme, že máme funkci func, která jako parametry přijímá seznam a callback. Funkce vytvoří nový seznam z prvků původního seznamu. Na každý z prvků bude aplikován callback:

def func(lst, callback): res = [] for el in lst: res.append(callback(el)) return res

Nyní vytvoříme funkci square, která umocní předané číslo na druhou:

def square(num): return num ** 2

Předáme do parametrů func číselný seznam a funkci square jako callback:

print( func([1, 2, 3], square) )

Do konzole se vypíše nový seznam složený z druhých mocnin čísel:

[1, 4, 9]

Daný kód však lze výrazně zkrátit použitím lambda funkce - anonymní funkce, která se volá pomocí klíčového slova lambda a zapisuje se na jeden řádek. Do lambda funkce lze tedy přepsat pouze funkce, jejichž kód zabírá jeden řádek.

Syntaxe lambda funkce vypadá takto:

lambda parametr funkce: operace s parametrem funkce

Přepišme funkci square pomocí lambda funkce a předejme ji do parametru func:

print( func([1, 2, 3], lambda num: num ** 2) )

Lambda funkci lze zapsat do proměnné:

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

Přepište následující kód pomocí lambda funkce:

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

Přepište následující kód pomocí lambda funkce:

def func(num, clb1, clb2): return (clb1(num), clb2(num)) def clb1(num): return num + 1 def clb2(num): return num - 1 print( func(2, clb1, clb2) )

Přepište následující kód pomocí lambda funkce:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout