Lambda Python là gì?
Lambda trong Python là một hàm ẩn danh có cấu trúc đơn giản hơn các hàm khác của Python, được dùng cho các phép tính đơn giản hoặc các thao tác nhỏ. Hàm Lambda không thể tái sử dụng. Nó chỉ chưa một biểu thức, không bao hàm các câu lệnh.
Cú pháp đơn giản của hàm Lambda Python:
lambda arguments: expression
Các hàm Lambda có thể có nhiều tham số (arguments
) nhưng nó chỉ có một biểu thức (expression
). Biểu thức được đánh giá và sẽ được trả về. Hàm Lambda Python có thể được dùng ở bất kỳ nơi nào yêu cầu các đối tượng hàm.
Ví dụ về hàm Lambda Python
Hàm Lambda dưới đây thêm 2 vào bất kỳ đối số nhất định nào
lambda x: x + 2
Nếu muốn áp dụng hàm lambda trên cho đối số được chọn, bạn có thể thêm dấu ngoặc đơn vào hàm và viết đối số bắt buộc bên cạnh như sau:
(lambda x: x + 2)(4)
Hàm Lambda trên sẽ nhận đối số 4, thêm 2 vào đối số và cung cấp 6 làm đầu ra.
Ưu điểm – hạn chế của hàm Lambda Python
Ưu điểm: Hàm Lambda Python giúp việc lập trở nên đơn giản và được tối ưu hơn, nhất là trong trường hợp bạn cần xử lý các vấn đề logic tại một thời điểm nhất định trong thời gian ngắn.
Hạn chế: Sử dụng hàm Lambda sẽ gây khó khăn trong việc debug các đoạn code và bảo trì
Cách sử dụng các hàm Lambda trong Python
Hàm Lambda Python được dùng làm đối số cho một hàm bậc cao hơn. Hàm bậc cao hơn được hiểu là một hàm có thể dùng các hàm khác làm đối số. Trong đó, có 3 loại hàm bậc cao thường được dùng trong hàm Lambda làm tham số đó là Filter (), map () và Reduce ().
Sử dụng Lambda làm Đối số với hàm Filter ()
Trong Python, hàm filter () là một hàm tích hợp giúp lọc các phần tử từ một iterable có điều kiện, nó trả về một iterator chứa các phần tử thỏa mãn điều kiện đã cho.
Bạn có thể sử dụng filter() trong Python cho phép bạn nhận một hàm cùng một danh sách làm đối số, nó sẽ chạy và trả về một danh sách đối số có chứa các giá trị True lọc được từ danh sách ban đầu.
Ví dụ: Trình bày cách hoạt động của filter () và lọc các số chẵn từ danh sách đầu vào:
MyList = [7, 1, 2, 8, 17, 3, 10, 14]
NewList = list(filter(lambda x: (x%2 == 0) , MyList))
print(NewList)
Đoạn code trên tận dụng hàm Lambda làm đối số để lọc theo yêu cầu và xuất ra kết quả sau:
Đầu ra
[2, 8, 10, 14]
Sử dụng Lambda làm đối số với map ()
Hàm map () trong Python hoạt động trên một danh sách và nhận một hàm làm đối số với danh sách tương tự hàm filter (). Hàm map () được dùng để lọc danh sách mới có chứa các mục hàm đầu vào đó trả về cho từng mục trong danh sách ban đầu.
Ví dụ: Sau đây là cách sử dụng hàm map () để nhập danh sách có chứa các giá trị nhân đôi của các giá trị trong danh sách ban đầu ở đầu ra.MyList = [3, 4, 5, 9, 8, 7, 11, 13]
NewList = list(map(lambda x: x * 2 , MyList))
print(NewList)
Hàm Lambda được cấp dưới dạng một đối số để thực thi phép tính bắt buộc và trả về kết quả sau:
Đầu ra[6, 8, 10, 18, 16, 14, 22, 26]
Sử dụng Lambda làm Đối số với Reduce ()
Hàm Reduce () hoạt động bằng cách nhận hàm Lambda cùng danh sách các giá trị làm đối số. Hàm Lambda có nhiệm vụ thực hiện quá trình lặp lại các cặp giá trị có trong danh sách đầu vào và trả về danh sách đã được rút gọn.
Ví dụ: Cách thức hoạt động của hàm Reduce () cùng với hàm Lambda để tính tổng của danh sách đầu vào.
from functools import reduce
lis = [12, 5, 20, 10, 200, 70]
sum = reduce((lambda x, y: x + y), lis)
print (sum)
Mã sẽ cung cấp cho bạn kết quả sau:
317
Các trường hợp sử dụng hàm Lambda Python
Hàm Lambda Python có thể được dùng trong các trường hợp sau:
- Các phép tính nhỏ: Giá trị trả về được tính toán bằng cách đánh giá một biểu thức trên một dòng code.
- Các hoạt động sử dụng một lần: Bạn không cần đặt tên hàm, vì nó được dùng một lần duy nhất.
- Cách hàm tích hợp: Bạn có thể sử dụng với các hàm tích hợp như hàm map(), filter(), sum(), reduce(), apply(), sorted(),…
Thực tế thì hàm Lambda rất hữu ích cho việc sắp xếp các cấu trúc dữ liệu trong Python như danh sách hoặc từ điển. Bạn có thể cân nhắc lựa chọn giữa hàm thông thường và hàm Lambda tùy theo sở thích và nhu cầu của bạn.
Kết luận
Trên đây, LANIT đã chia sẻ chi tiết về hàm Lambda – hàm ẩn danh trong lập trình Python. Đây được xem là hàm đơn giản giúp bạn tối ưu việc lập trình của mình. Nếu bạn còn thắc mắc nào hoặc cần tư vấn khi có nhu cầu thuê VPS giá rẻ để chạy thử nghiệm ứng dụng Python liên hệ ngay với LANIT nhé!