lambda là cách tạo ra một hàm ngắn gọn, không cần dùng từ khóa def.
Lambda thường dùng khi chỉ cần viết hàm đơn giản trong 1 dòng.
Cú pháp:
lambda tham_so: bieu_thucVí dụ:
cong_2 = lambda x: x + 2
print(cong_2(5))Kết quả:
7
Lambda ở trên tương đương với:
def cong_2(x):
return x + 2lambda không chỉ nhận 1 tham số mà có thể nhận nhiều tham số.
Các tham số được viết cách nhau bằng dấu phẩy ,.
Cú pháp:
lambda tham_so1, tham_so2: bieu_thucVí dụ cộng 2 số:
tong = lambda a, b: a + b
print(tong(3, 5))Kết quả:
8
nhan = lambda x, y: x * y
print(nhan(4, 6))Kết quả:
24
lon_hon = lambda a, b: a if a > b else b
print(lon_hon(7, 3))Kết quả:
7
Lambda 2 tham số tương đương với hàm def. Ví dụ:
def tong(a, b):
return a + btong = lambda a, b: a + b
lambda thường được dùng với các hàm như map(), filter(), sorted().
| Hàm | Công dụng |
|---|---|
| map() | Biến đổi từng phần tử |
| filter() | Lọc dữ liệu theo điều kiện |
| sorted() | Sắp xếp dữ liệu |
Hàm map() áp dụng một hàm lên từng phần tử trong danh sách.
Ví dụ nhân đôi các số:
ds = [1, 2, 3, 4]
ket_qua = list(map(lambda x: x * 2, ds))
print(ket_qua)Hàm filter() dùng để lọc phần tử thỏa điều kiện.
Ví dụ lấy số chẵn:
ds = [1, 2, 3, 4, 5, 6]
so_chan = list(filter(lambda x: x % 2 == 0, ds))
print(so_chan)Có thể dùng lambda để chỉ định cách sắp xếp.
Ví dụ sắp xếp theo điểm:
hoc_sinh = [("An", 8), ("Bình", 5), ("Lan", 9)]
sap_xep = sorted(hoc_sinh, key=lambda x: x[1])
print(sap_xep)Nên dùng lambda khi:
Không nên dùng khi:
Tìm kiếm:
Hướng dẫn chi tiết có code Lambda trong Python