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:
def 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:
def square(num):
return num ** 2
Wacha tuipitishe kwenye vigezo vya func
orodha ya nambari na kazi square kama
kiwito:
print( func([1, 2, 3], square) )
Kwenye konsoli orodha mpya itaonyeshwa, inayojumuisha vigawo vya nambari:
[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:
lambda kigezo cha kazi: operesheni na kigezo cha kazi
Wacha tuandike upya kazi square kwa
kutumia kazi ya lambda na tuipitishe kwenye
kigezo func:
print( func([1, 2, 3], lambda num: num ** 2) )
Kazi ya lambda inaweza kuandikwa kwenye kutofautisha:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Andika tena msimbo ufuatao kupitia kazi ya lambda:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Andika tena msimbo ufuatao kupitia kazi ya 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) )
Andika tena msimbo ufuatao kupitia kazi ya lambda:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))