Lambda function (hay còn gọi là hàm ẩn danh) trong Python là một loại hàm được định nghĩa mà không cần sử dụng từ khóa def
. Hàm này có thể nhận bất kỳ số lượng tham số nào, nhưng chỉ có thể có một biểu thức duy nhất. Lambda function thường được sử dụng khi bạn cần một hàm đơn giản trong một khoảng thời gian ngắn và không muốn định nghĩa một hàm chính thức với def
.
Cú pháp của lambda function là:
lambda arguments: expression
Đặc Điểm Nổi Bật
- Đơn Giản: Lambda function có thể được viết gọn gàng trong một dòng, rất thích hợp cho các tác vụ đơn giản.
- Hàm Ẩn Danh: Lambda functions không có tên (tên là
lambda
) và thường được sử dụng ở những nơi mà bạn không cần gọi lại.
- Không Có Tên: Chúng có thể được gán cho một biến, nhưng bản thân chúng không phải là các hàm được định nghĩa với một tên riêng.
Sử Dụng Lambda Function
Lambda function thường được sử dụng với các hàm như map()
, filter()
, và sorted()
để áp dụng một thao tác cho các phần tử trong danh sách, tuple, hoặc các cấu trúc dữ liệu khác.
1. Sử Dụng với map()
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # Kết quả: [1, 4, 9, 16, 25]
2. Sử Dụng với filter()
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # Kết quả: [2, 4]
3. Sử Dụng với sorted()
points = [(2, 3), (1, 2), (4, 1)]
sorted_points = sorted(points, key=lambda point: point[1])
print(sorted_points) # Kết quả: [(4, 1), (1, 2), (2, 3)]
Ví Dụ Khác về Lambda Function
1. Lambda với Tham Số Nhiều
add = lambda x, y: x + y
print(add(3, 5)) # Kết quả: 8
2. Lambda Trong Danh Sách
names = ['Alice', 'Bob', 'Charlie']
sorted_names = sorted(names, key=lambda name: len(name))
print(sorted_names) # Kết quả: ['Bob', 'Alice', 'Charlie']
Khi Nào Nên Sử Dụng Lambda Function?
- Khi Cần Một Hàm Ngắn Gọn: Nếu bạn chỉ cần một hàm đơn giản mà không cần đặt tên, lambda là lựa chọn hợp lý.
- Trong Các Tình Huống Ngắn Hạn: Lambda thường được sử dụng khi bạn chỉ cần một hàm tạm thời cho một phép toán nhất định mà không cần sử dụng lại.
Hạn Chế
- Không Thể Thực Hiện Nhiều Biểu Thức: Lambda function chỉ có thể chứa một biểu thức, không thể chứa câu lệnh hoặc nhiều biểu thức.
- Khó Đọc: Khi lambda function trở nên phức tạp, nó có thể khó đọc hơn so với việc sử dụng một hàm thông thường với
def
.
Kết Luận
Lambda function là một công cụ mạnh mẽ trong Python, giúp viết mã ngắn gọn và hiệu quả hơn cho các tác vụ đơn giản. Chúng đặc biệt hữu ích trong các hàm như map()
, filter()
, và sorted()
. Tuy nhiên, việc sử dụng lambda cũng cần được cân nhắc để tránh làm mã trở nên khó hiểu.