Hàm Lambda trong Python: Hướng dẫn về hàm ẩn danh
Tìm hiểu cách viết hàm lambda ẩn danh bằng Python. Nắm vững các mẫu lập trình chức năng bằng cách sử dụng bản đồ(), bộ lọc() và sắp xếp() với cú pháp lambda.
Tổng quan
Trong Python, hàm lambda—còn được gọi là hàm ẩn danh—là các hàm một dòng nhỏ, nhanh, không yêu cầu từ khóa `def` tiêu chuẩn hoặc tên chính thức. Chúng nhằm mục đích sử dụng tạm thời, nhanh chóng, cho phép bạn truyền logic chức năng dưới dạng đối số trực tiếp nội tuyến. Điều này làm cho mã của bạn gọn hơn, giảm chi phí viết các hàm trợ giúp chính thức chỉ được gọi ở một nơi.
Cú pháp của hàm lambda rất đơn giản: `` đối số lambda: biểu thức`. Không giống như các hàm tiêu chuẩn, lambda không có câu lệnh `return` rõ ràng; biểu thức được đánh giá và trả về tự động. Hơn nữa, các hàm lambda bị giới hạn ở một biểu thức duy nhất, nghĩa là bạn không thể viết các vòng lặp, bài tập hoặc khối điều kiện nhiều dòng phức tạp bên trong chúng, thực thi một cách tiếp cận chức năng, rõ ràng.
Hàm Lambda thường được sử dụng kết hợp với các hàm bậc cao tích hợp sẵn như `map()` (áp dụng một hàm cho mọi mục trong danh sách), `filter()` (giữ lại các mục khớp với một điều kiện) và `sorted()` (sắp xếp các mục bằng phím sắp xếp tùy chỉnh). Ví dụ: sắp xếp danh sách từ điển theo một khóa từ điển cụ thể thật dễ dàng khi sử dụng lambda làm khóa sắp xếp. Hiểu các hàm lambda sẽ cung cấp cho bạn một công cụ quan trọng để viết mã Python rõ ràng.
Đầu ra mã & thực thi
Sắp xếp danh sách từ điển phức tạp và lọc bộ dữ liệu bằng cách sử dụng các hàm ẩn danh nội tuyến.
# Sorting using lambda
students = [
{"name": "Alice", "grade": 88},
{"name": "Bob", "grade": 95},
{"name": "Charlie", "grade": 90}
]
# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
print(f"- {student['name']}: {student['grade']}")
# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88
Odd numbers: [1, 3, 5, 7]Triển khai từng bước
- Chuyển tiêu chí sắp xếp tùy chỉnh tới list.sort() vàsort()
- Áp dụng các phép biến đổi nội tuyến trong quy trình khoa học dữ liệu
- Xác định lệnh gọi lại nhanh trong ứng dụng giao diện người dùng theo sự kiện
Câu hỏi thường gặp
Hàm lambda có thể nhận nhiều đối số không?
Có, bạn có thể xác định nhiều đối số được phân tách bằng dấu phẩy, ví dụ: lambda x, y: x + y.
Tại sao các hàm lambda được gọi là ẩn danh?
Bởi vì chúng được tạo mà không có ràng buộc về tên, không giống như các hàm def đăng ký một tên cụ thể trong không gian tên cục bộ.
Chủ đề liên quan
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.
Hiểu biết về PythonViết Python sạch hơn, nhanh hơn. Danh sách chính, từ điển và khả năng hiểu tập hợp với các ví dụ thực tế, điều kiện lọc và vòng lặp lồng nhau.
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.
Cách sử dụng hàm Lambda trong Python
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.
Bảng cheat phương thức chuỗi Python
Hướng dẫn tham khảo đầy đủ về thao tác chuỗi Python. Làm chủ định dạng, tìm kiếm, phân tách, thay thế và kiểm tra thuộc tính chuỗi.
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.