Funksioni Lambda në Python
Le të themi se kemi një funksion func,
që si parametra pranon një listë dhe
një callback. Funksioni do të krijojë një
listë të re nga elementët e listës fillestare. Në
çdo element do të zbatohet
callback:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Tani le të krijojmë funksionin square,
që do të ngrejë numrin e dhënë
në katror:
def square(num):
return num ** 2
Le të kalojmë si parametra në func
listën numerike dhe funksionin square si
callback:
print( func([1, 2, 3], square) )
Në konsol do të printohet lista e re, e përbërë nga katrorët e numrave:
[1, 4, 9]
Megjithatë, ky kod mund të shkurtohet ndjeshëm
duke përdorur funksionin lambda
- një funksion anonim, i cili thirret
duke përdorur fjalën kyçe lambda dhe
shkruhet në një rresht të vetëm. Prandaj në
funksionin lambda mund të rishkruhen vetëm
funksionet, kodi i të cilëve zë një rresht.
Sintaksa e funksionit lambda duket kështu:
lambda parametri i funksionit: operacioni me parametrin e funksionit
Le të rishkruajmë funksionin square
duke përdorur funksionin lambda dhe ta kalojmë atë në
parametrin func:
print( func([1, 2, 3], lambda num: num ** 2) )
Funksioni lambda mund të shkruhet në një variabël:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Rishkruani kodin e mëposhtëm përmes funksionit lambda:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Rishkruani kodin e mëposhtëm përmes funksionit lambda:
def func(num, clb1, clb2):
return (clb1(num), clb2(num))
def clb1(num):
return num + 1
def clb2(num):
return num - 1
print( func(2, clb1, clb2) )
Rishkruani kodin e mëposhtëm përmes funksionit lambda:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))