Cách sử dụng hàm Lambda trong Python (Hàm ẩn danh)
Tìm hiểu cách sử dụng hàm lambda trong Python. Nắm vững các hàm ẩn danh, lệnh gọi lại nội tuyến và sắp xếp dữ liệu danh sách bằng khóa lambda.
Tổng quan
Trong Python, các hàm là công dân hạng nhất, nghĩa là chúng có thể được gán cho các biến, được truyền dưới dạng đối số cho các hàm khác và được trả về từ các hàm. Trong khi các hàm tiêu chuẩn được khai báo bằng từ khóa `def`, Python cũng cung cấp cú pháp tốc ký để tạo các hàm nội tuyến ẩn danh: các hàm `lambda`.
Hàm lambda được xác định bằng từ khóa `lambda`, theo sau là danh sách các đối số, dấu hai chấm và một biểu thức. Cú pháp là `đối số lambda: biểu thức`. Không giống như các hàm `def`, lambdas không yêu cầu câu lệnh `return`; kết quả của biểu thức được trả về tự động. Chúng được giới hạn ở một dòng logic duy nhất, khiến chúng trở nên lý tưởng cho các hoạt động đơn giản, một lần.
Các hàm Lambda được sử dụng phổ biến nhất làm đối số cho các hàm bậc cao hơn như `sorted()`, `map()` và `filter()`. Ví dụ: bạn có thể chuyển hàm lambda cho đối số `key` của `sorted()` để xác định tiêu chí sắp xếp tùy chỉnh hoặc sử dụng chúng làm hàm gọi lại nhẹ bên trong các ứng dụng đồ họa hoặc hướng sự kiện.
Đầu ra mã & thực thi
Tập lệnh này trình bày cách xây dựng các hàm ẩn danh nhẹ bằng lambda.
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))
# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))
# 3. Using lambda as a sorting key (sorting by age)
people = [
{"name": "Alice", "age": 28},
{"name": "Bob", "age": 22},
{"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]Triển khai từng bước
- Viết từ khóa lambda theo sau là tên tham số được phân tách bằng dấu phẩy của bạn.
- Đặt dấu hai chấm, theo sau là biểu thức duy nhất bạn muốn đánh giá và trả về.
- Truyền trực tiếp lambda dưới dạng lệnh gọi lại tới các hàm như được sắp xếp(), map() hoặc filter().
Câu hỏi thường gặp
Hàm lambda có thể chứa vòng lặp hoặc nhiều câu lệnh không?
Không, các hàm lambda trong Python bị giới hạn nghiêm ngặt ở một biểu thức duy nhất. Nếu bạn cần logic phức tạp, vòng lặp hoặc phép gán biến, bạn phải xác định hàm tiêu chuẩn bằng cách sử dụng def.
Tôi có nên gán hàm lambda cho biến không?
Nói chung là không. Nguyên tắc PEP 8 đề xuất sử dụng câu lệnh def tiêu chuẩn thay vì gán lambda cho một biến, vì các hàm tiêu chuẩn cung cấp tên theo dõi ngăn xếp tốt hơn.
Chủ đề liên quan
Tìm hiểu cách sắp xếp danh sách trong Python bằng phương thức Sort() và hàm Sort(). Khám phá các ví dụ về sắp xếp khóa tùy chỉnh và thứ tự đảo ngược.
Cách sử dụng tính năng hiểu danh sách trong PythonTìm hiểu cách sử dụng tính năng hiểu danh sách trong Python. Viết các vòng lặp ngắn gọn, áp dụng các bộ lọc có điều kiện và xây dựng ma trận bằng cú pháp trực quan rõ ràng.
Tài nguyên Python được đề xuất
Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.
Hàm Python
Làm chủ các hàm Python. Tìm hiểu cách viết mã có thể sử dụng lại bằng cách sử dụng def, xác định đối số, trả về giá trị và hiểu phạm vi cục bộ và toàn cầu.
Bảng tóm tắt các chức năng của mô-đun toán học Python
Hướng dẫn tham khảo nhanh thư viện chuẩn toán Python. Tìm hiểu cách sử dụng các hàm lượng giác, logarit, làm tròn và số học.
Python vs JavaScript: Ngôn ngữ lập trình nào tốt nhất?
So sánh toàn diện giữa Python và JavaScript. Khám phá sự khác biệt về cú pháp, hiệu suất, trường hợp sử dụng (phụ trợ so với giao diện người dùng) và các ví dụ về mã hóa.