⊗pyPmFnLa 16 of 129 menu

Hàm Lambda trong Python

Giả sử chúng ta có một hàm func, nhận một danh sách và một callback làm tham số. Hàm sẽ tạo ra một danh sách mới từ các phần tử của danh sách ban đầu. Đồng thời, callback sẽ được áp dụng cho từng phần tử:

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

Bây giờ hãy tạo một hàm square, hàm này sẽ bình phương số được truyền vào:

def square(num): return num ** 2

Hãy truyền một danh sách số và hàm square vào làm tham số cho func với vai trò là callback:

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

Một danh sách mới, bao gồm các bình phương của các số, sẽ được in ra console:

[1, 4, 9]

Tuy nhiên, đoạn mã này có thể được rút gọn đáng kể bằng cách sử dụng hàm lambda - một hàm ẩn danh, được gọi bằng từ khóa lambda và được viết trên một dòng. Do đó, chỉ những hàm có mã chiếm một dòng mới có thể được viết lại thành hàm lambda.

Cú pháp của hàm lambda trông như thế này:

lambda tham_số_của_hàm: phép_toán_với_tham_số

Hãy viết lại hàm square bằng hàm lambda và truyền nó vào tham số func:

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

Hàm lambda có thể được gán vào một biến:

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

Viết lại đoạn mã sau bằng hàm lambda:

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

Viết lại đoạn mã sau bằng hàm 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) )

Viết lại đoạn mã sau bằng hàm lambda:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối