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) )
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) )
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) )
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))