Lambda w Pythonie

Lambda funkcje są małymi anonimowymi funkcjami.

Lambda funkcje mogą przyjmować dowolną liczbę argumentów, ale mogą mieć tylko jedną wyrażenie.

Gramatyka

lambda arguments : expression

Wykonaj wyrażenie i zwróć wynik:

Przykład

Lambda funkcja, która dodaje 10 do liczby przekazanej jako argument, a następnie wypisuje wynik:

x = lambda a : a + 10
print(x(5))

Uruchom przykład

Lambda funkcje mogą przyjmować dowolną liczbę parametrów:

Przykład

Lambda funkcja, która mnoży parametry a i b i drukuje wynik:

x = lambda a, b : a * b
print(x(5, 6))

Uruchom przykład

Przykład

Lambda funkcja, która dodaje parametry a, b i c i drukuje wynik:

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

Uruchom przykład

Dlaczego używać funkcji lambda?

Kiedy używasz lambda jako anonimowej funkcji wewnątrz innej funkcji, lepiej widać potęgę lambda.

Załóżmy, że masz definicję funkcji z jednym parametrem, który będzie mnożony przez nieznany liczby:

def myfunc(n):
  return lambda a : a * n

Używając tej definicji funkcji, można utworzyć funkcję, która zawsze podwaja wysyłane liczby:

Przykład

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))

Uruchom przykład

Albo, używając tej samej definicji funkcji, można utworzyć funkcję, która zawsze zwiększa wysyłane liczby o trzy razy:

Przykład

def myfunc(n):
  return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))

Uruchom przykład

Albo, używając tej samej definicji funkcji w tym samym programie, można utworzyć dwie funkcje:

Przykład

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11)) 
print(mytripler(11))

Uruchom przykład

Jeśli potrzebujesz funkcji anonimowej w krótkim czasie, użyj funkcji lambda.