Lambda function
là một loại hàm vô danh (anonymous function) trong Python. Khác với các hàm thông thường được định nghĩa bằng cách sử dụng từ khóa def, lambda function
được định nghĩa bằng cách sử dụng từ khóa lambda
.
Cú pháp chung của một lambda function
như sau:
lambda arguments: expression
Trong đó:
arguments là danh sách các đối số của lambda function. expression là biểu thức được sử dụng để tính toán và trả về giá trị của lambda function. Ví dụ, ta có thể định nghĩa một lambda function để tính bình phương của một số như sau:
square = lambda x: x ** 2
Trong đoạn code trên, lambda function có một đối số x và biểu thức tính toán bình phương của x là x ** 2. Ta có thể gọi lambda function này như một hàm thông thường:
square(3) # 9
Lambda function
thường được sử dụng khi ta cần định nghĩa một hàm ngắn gọn mà không cần phải đặt tên cho nó. Chúng thường được sử dụng để định nghĩa các hàm sắp xếp (sorting functions), các hàm xử lý chuỗi (string processing functions), hoặc các hàm trả về giá trị logic (boolean functions).
Dưới đây là một số ví dụ về cách sử dụng lambda function
trong các trường hợp thường gặp:
Sắp xếp danh sách các tuple theo giá trị của một trường:
students = [('Alice', 23), ('Bob', 21), ('Charlie', 25)]
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students) # [('Bob', 21), ('Alice', 23), ('Charlie', 25)]
Trong đoạn code trên, lambda function được sử dụng để trích xuất giá trị của trường thứ hai trong mỗi tuple và sử dụng nó để sắp xếp danh sách các tuple.
Tìm phần tử lớn nhất trong danh sách:
numbers = [1, 2, 3, 4, 5]
max_number = max(numbers, key=lambda x: x)
print(max_number) # 5
Trong đoạn code trên, lambda function được sử dụng để so sánh các phần tử trong danh sách và trả về phần tử có giá trị lớn nhất.
Chuyển đổi các phần tử trong danh sách:
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # [1, 4, 9, 16, 25]
Trong đoạn code trên, lambda function được sử dụng để tính toán bình phương của từng phần tử trong danh sách sử dụng hàm map.
Lọc các phần tử trong danh sách:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4]
Trong đoạn code trên, lambda function được sử dụng để kiểm tra tính chẵn lẻ của từng phần tử trong danh sách và lọc ra các phần tử chẵn sử dụng hàm filter.
Bình luận