Functii Lambda
Ce sunt Functiile Lambda?
Functiile lambda sunt functii anonime, definite intr-o singura expresie.
Sintaxa
lambda parametri: expresie
Exemple de Baza
# Functie normala
def aduna(a, b):
return a + b
# Echivalent lambda
aduna = lambda a, b: a + b
print(aduna(3, 5)) # 8
# Mai multe exemple
patrat = lambda x: x ** 2
print(patrat(4)) # 16
salut = lambda nume: f"Salut, {nume}!"
print(salut("Ana")) # Salut, Ana!
Folosire cu sorted()
studenti = [("Ana", 20), ("Bob", 18), ("Cris", 22)]
# Sortare dupa varsta
sortat = sorted(studenti, key=lambda s: s[1])
# [('Bob', 18), ('Ana', 20), ('Cris', 22)]
# Sortare dupa lungimea numelui
sortat = sorted(studenti, key=lambda s: len(s[0]))
# [('Ana', 20), ('Bob', 18), ('Cris', 22)]
Folosire cu map(), filter()
numere = [1, 2, 3, 4, 5]
# Dublare cu map
duble = list(map(lambda x: x * 2, numere))
# [2, 4, 6, 8, 10]
# Filtrare pare
pare = list(filter(lambda x: x % 2 == 0, numere))
# [2, 4]
Limitari Lambda
- O singura expresie (nu blocuri)
- Fara statements (if/for/while)
- Fara docstrings
- Dificil de depanat
# GRESIT - nu poti face asta
# f = lambda x: if x > 0: return x
# CORECT - expresie conditionala
f = lambda x: x if x > 0 else 0
Cand sa Folosesti Lambda
Da:
- Functii simple, de o linie
- Ca argument pentru sorted(), map(), filter()
- Expresii scurte
Nu:
- Logica complexa
- Cand ai nevoie de documentatie
- Cand o reutilizezi in mai multe locuri
Puncte Cheie pentru Examen
- Sintaxa:
lambda params: expresie - Returneaza automat rezultatul expresiei
- Utile cu
sorted(key=...),map(),filter() - O singura expresie, nu blocuri de cod