- Funkce vyšších řádů jsou funkce, které buď přijímají jako argumenty jiné funkce, nebo je vracejí.
- Python poskytuje několik vestavěných funkcí vyššího řádu, jako jsou
map()
,filter()
, a také podporuje anonymní funkce pomocílambda
. - Funkce
reduce()
musí být importována přes modulfunctools
Mapování (map()
)
- Funkce
map()
aplikuje danou funkci na každý prvek iterovatelného objektu (seznamu, n-tici, …) a vrací iterátor s výsledky.
funkce
map()
numbers = [1, 2, 3, 4, 5] squared = map(lambda x: x ** 2, numbers) print(list(squared)) # Výstup: [1, 4, 9, 16, 25]
Filtrování (filter()
)
- Funkce
filter()
aplikuje danou funkci na každý prvek iterovatelného objektu a vrací iterátor s prvky, pro které funkce vrátíTrue
.
funkce
filter()
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = filter(lambda x: x % 2 == 0, numbers) print(list(even_numbers)) # Výstup: [2, 4, 6, 8, 10]
Redukce (reduce()
)
Funkce reduce()
postupně aplikuje zadanou binární funkci k prvkům sekvence a vrátí jedinou hodnotu.
- Funkce
reduce()
aplikuje danou funkci kumulativně na prvky iterovatelného objektu, odleva doprava, aby se zredukovaly na jednu hodnotu. reduce()
není vestavěná funkce a musí být importována z modulufunctools
.
from functools import reduce
# Příklad: Součet všech prvků seznamu
numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers) # 15
Anonymní funkce
- Anonymní funkce jsou malé, jednorázové funkce, které nemusí být definovány pomocí klíčového slova
def
.
normální vs lambda funkce
# Normální funkce def add(x, y): return x + y # Lambda funkce add_lambda = lambda x, y: x + y print(add(3, 5)) # Výstup: 8 print(add_lambda(3, 5)) # Výstup: 8
Navigace
Předchozí: Události v objektovém programování Následující: Rekurze a rekurzivní datové struktury (spojové seznamy, stromy) Celý okruh: 3. Programovací jazyky a programování