Lambda w Pythonie to anonimowa (bez nazwy), jednolinijkowa funkcja, która przyjmuje wiele parametrów i tylko jedną wartość.
składnia funkcji lambda:
lambda <parametry> : <wartość>
Jest to funkcja która nie ma nazwy. Poprzez użycie słowa kluczowego 'lambda’ informujemy Python,
że właśnie taką anonimową funkcję chcemy utworzyć. Następnie podajemy listę parametrów, które chcemy aby przyjmowała,
używamy znaku ':' oraz definiujemy jej zawartość.
lambda a,b : a+b
Przykład:
x=lambda a,b: a+b
print(x(5,6))
wynik:
11
W przykładzie powyżej funkcja przyjmuje dwa parametry a i b a następnie zwraca ich sumę.
Funkcja lambda odgrywa ważną rolę, gdy używasz ją jako funkcję anonimową wewnątrz innej funkcji.
Żeby lepiej zrozumieć zastosowanie funkcji lambda, najpierw wyjaśnijmy działanie w Pythonie funkcji wyższego rzędu.
Funkcja wyższego rzędu to zwykła funkcja, która przyjmuje jako parametr inną funkcję lub zwraca funkcję.
Przykład:
def fun(f,x):
return x+x
def fun1(y):
return y*y
#wywołanie funkcji wyższego rzędu
fun(fun1,2)
4 #wynik
#jeszcze raz wywołanie funkcji wyższego rzędu, tylko z inną wartością parametru czyli '5'
fun(fun1,5)
10
I jeszcze jeden przykład, tym razem z wykorzystaniem funkcji lambda:
Przykład:
#funkcja wyższego rzędu:
def fun(f,x):
return f(x)
#zmienna y i przypisana do niej funkcja anonimowa lambda:
y=lambda z:z*z
#wywołanie funkcji wyższego rzędu:
fun(y,3)
9 #wynik
Wyrażenia warunkowe w funkcji lambda
Składnia funkcji lambda z zastosowaniem w wartości funkcji wyrażenia warunkowego:
lambda <parametry> : wartość IF wyrażenie prawdziwe ELSE (…)
Przykład:
y=lambda x:"przyjdę dziś" if x<10 else "nie przyjdę dziś"
print(y(2))
przyjdę dziś #wynik
print(y(12))
nie przyjdę dziś #wynik