Python Lambda
Một hàm lambda là một hàm ẩn danh nhỏ.
Một hàm lambda có thể nhận bất kỳ số lượng đối số nào, nhưng chỉ có thể có một biểu thức.
Cú pháp
lambda arguments : expression
Biểu thức được thực thi và kết quả được trả về:
Thí dụ
Thêm 10 vào đối số a
và trả về kết quả:
x = lambda a : a + 10
print(x(5))
Các hàm lambda có thể nhận bất kỳ số lượng đối số nào:
Thí dụ
Nhân đối số a
với đối số
b
và trả về kết quả:
x = lambda a, b : a * b
print(x(5, 6))
Thí dụ
Tóm tắt đối số a
và
b
trả c
về kết quả:
x = lambda a, b, c : a + b + c
print(x(5, 6,
2))
Tại sao sử dụng các hàm Lambda?
Sức mạnh của lambda được thể hiện rõ hơn khi bạn sử dụng chúng như một hàm ẩn danh bên trong một hàm khác.
Giả sử bạn có một định nghĩa hàm nhận một đối số và đối số đó sẽ được nhân với một số chưa biết:
def myfunc(n):
return lambda a : a * n
Sử dụng định nghĩa hàm đó để tạo một hàm luôn tăng gấp đôi số bạn gửi vào:
Thí dụ
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Hoặc, sử dụng cùng một định nghĩa hàm để tạo một hàm luôn tăng gấp ba lần số bạn gửi:
Thí dụ
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
Hoặc, sử dụng cùng một định nghĩa hàm để tạo cả hai hàm, trong cùng một chương trình:
Thí dụ
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Sử dụng các hàm lambda khi một hàm ẩn danh được yêu cầu trong một khoảng thời gian ngắn.