Kazi ya Lambda katika Python

Hebu tuwe na kazi func, ambayo inakubali orodha na kiwito kama vigezo. Kazi itaunda orodha mpya kutoka kwa vipengele vya orodha asili. Wakati huo huo, kiwito kitatumika kwa kila kipengele:

pythondef func(lst, callback):
  res = []
  
  for el in lst:
    res.append(callback(el))
    
  return res

Sasa tuunde kazi square, ambayo itainua nambari iliyopitishwa kiwango cha pili:

pythondef square(num):
  return num ** 2

Wacha tuipitishe kwenye vigezo vya func orodha ya nambari na kazi square kama kiwito:

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

Kwenye konsoli orodha mpya itaonyeshwa, inayojumuisha vigawo vya nambari:

python[1, 4, 9]

Hata hivyo, msimbo huu unaweza kufupishwa sana kwa kutumia kazi ya lambda - kazi isiyojulikana, ambayo inaitwa kwa msaada wa neno kuu lambda na kuandikwa kwenye mstari mmoja. Kwa hivyo kwenye kazi ya lambda inaweza kubadilishwa tu kazi, msimbo ambao unachukua mstari mmoja.

Sintaksia ya kazi ya lambda inaonekana hivi:

pythonlambda kigezo cha kazi: operesheni na kigezo cha kazi

Wacha tuandike upya kazi square kwa kutumia kazi ya lambda na tuipitishe kwenye kigezo func:

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

Kazi ya lambda inaweza kuandikwa kwenye kutofautisha:

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

Andika tena msimbo ufuatao kupitia kazi ya lambda:

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

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

Andika tena msimbo ufuatao kupitia kazi ya 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

Andika tena msimbo ufuatao kupitia kazi ya lambda:

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