Fungsi Lambda dalam Python
Katakan kita ada fungsi func,
yang parameternya menerima senarai dan
callback. Fungsi akan mencipta senarai baharu
dari elemen senarai asal. Pada
masa yang sama, callback akan digunakan
pada setiap elemen:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Sekarang mari kita cipta fungsi square,
yang akan mengkuadratkan nombor yang
diberikan kepadanya:
def square(num):
return num ** 2
Mari kita berikan kepada parameter func
senarai nombor dan fungsi square
sebagai callback:
print( func([1, 2, 3], square) )
Senarai baharu yang terdiri daripada kuasa dua nombor akan dipaparkan dalam konsol:
[1, 4, 9]
Walau bagaimanapun, kod ini boleh
disingkatkan dengan ketara dengan menggunakan
fungsi lambda
- fungsi tanpa nama yang dipanggil dengan
kata kunci lambda dan
ditulis dalam satu baris. Oleh itu, hanya
fungsi yang kodnya mengambil satu baris boleh
ditulis semula ke dalam fungsi lambda.
Sintaks fungsi lambda kelihatan seperti ini:
lambda parameter fungsi: operasi dengan parameter fungsi
Mari kita tulis semula fungsi square
menggunakan fungsi lambda dan berikannya kepada
parameter func:
print( func([1, 2, 3], lambda num: num ** 2) )
Fungsi lambda boleh ditulis ke dalam pembolehubah:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Tulis semula kod berikut melalui fungsi lambda:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Tulis semula kod berikut melalui fungsi 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) )
Tulis semula kod berikut melalui fungsi lambda:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))