Gândește-te la o funcție lambda ca la o funcție mică, fără nume.
Poate primi oricâte argumente vrei, dar corpul ei se limitează la o singură expresie.
Sintaxă
Python evaluează expresia și returnează rezultatul.
Exemplu
Returnează argumentul a plus 10:
Ieșire: program Python complet
x = lambda a : a + 10
print(x(5))
Exemplu
Returnează produsul argumentelor a și b:
Ieșire: program Python complet
x = lambda a, b : a * b
print(x(5, 6))
Exemplu
Returnează suma argumentelor a, b și c:
Ieșire: program Python complet
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
lambda arguments : expression
De ce să folosim funcții lambda?
Funcțiile lambda dau cel mai bun rezultat când sunt folosite ca funcții anonime în interiorul altei funcții.
Imaginează-ți o funcție cu un singur parametru, iar funcția lambda pe care o returnează înmulțește cu acel parametru un număr pe care încă nu l-ai furnizat.
Exemplu
Ieșire: program Python complet
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Exemplu
Ieșire: program Python complet
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
Exemplu
Ieșire: program Python complet
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Lambda cu funcții predefinite
Vei vedea des funcții lambda transmise unor funcții predefinite precum map(), filter() și sorted().
Exemplu
Înmulțește cu doi fiecare număr dintr-o listă:
Ieșire: program Python complet
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)
Exemplu
Păstrează doar numerele impare dintr-o listă:
Ieșire: program Python complet
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)
Exemplu
Ordonează o listă de tupluri după al doilea element:
Ieșire: program Python complet
students = [("Emil", 25), ("Tobias", 22), ("Linus", 28)]
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)
Exemplu
Ordonează șirurile de la cel mai scurt la cel mai lung:
Ieșire: program Python complet
words = ["apple", "pie", "banana", "cherry"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)