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:

pythondef 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:

pythondef square(num):
  return num ** 2

Le të kalojmë si parametra në func listën numerike dhe funksionin square si callback:

pythonprint( func([1, 2, 3], square) )

Në konsol do të printohet lista e re, e përbërë nga katrorët e numrave:

python[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:

pythonlambda 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:

pythonprint( func([1, 2, 3], lambda num: num ** 2) )

Funksioni lambda mund të shkruhet në një variabël:

pythonsquare = lambda num: num ** 2
print( func([1, 2, 3], square) )
Задание 1

Rishkruani kodin e mëposhtëm përmes funksionit lambda:

pythondef func(num, clb):
  return clb(num)

def clb(num):
  return num + 1
  
print( func(2, clb) )
Задание 2

Rishkruani kodin e mëposhtëm përmes funksionit lambda:

pythondef 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) )
Задание 3

Rishkruani kodin e mëposhtëm përmes funksionit lambda:

pythondef func(num1, num2, clb):
  res = clb(num1) + num2
  return res
  
def clb(num):
  return num ** 3
  
print(func(2, 6, clb))