Python Lambda
Funkcja lambda to mała anonimowa funkcja.
Funkcja lambda może przyjmować dowolną liczbę argumentów, ale może mieć tylko jedno wyrażenie.
Składnia
lambda arguments : expression
Wyrażenie jest wykonywane i zwracany jest wynik:
Przykład
Dodaj 10 do argumentu a
i zwróć wynik:
x = lambda a : a + 10
print(x(5))
Funkcje lambda mogą przyjmować dowolną liczbę argumentów:
Przykład
Pomnóż argument a
przez argument
b
i zwróć wynik:
x = lambda a, b : a * b
print(x(5, 6))
Przykład
Podsumuj argument a
,
b
i c
i zwróć wynik:
x = lambda a, b, c : a + b + c
print(x(5, 6,
2))
Dlaczego warto korzystać z funkcji lambda?
Moc lambda jest lepiej pokazana, gdy używasz ich jako funkcji anonimowej wewnątrz innej funkcji.
Załóżmy, że masz definicję funkcji, która przyjmuje jeden argument, a ten argument zostanie pomnożony przez nieznaną liczbę:
def myfunc(n):
return lambda a : a * n
Użyj tej definicji funkcji, aby utworzyć funkcję, która zawsze podwaja liczbę, którą wysyłasz:
Przykład
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Lub użyj tej samej definicji funkcji, aby utworzyć funkcję, która zawsze potraja liczbę, którą wysyłasz:
Przykład
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
Lub użyj tej samej definicji funkcji, aby utworzyć obie funkcje w tym samym programie:
Przykład
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Użyj funkcji lambda, gdy wymagana jest funkcja anonimowa przez krótki czas.