Trong Python, các hàm
[1, 4, 9, 16, 25]
1 là các hàm ẩn danh lấy tên và cú pháp của chúng từ phép tính Lambda của Alonzo Church. cú pháp của họ làlambda x_1,..., x_n : expression[x_1, ..., x_n]
Điều này tạo ra một hàm ẩn danh nhận đầu vào là biến
[1, 4, 9, 16, 25]
3 và trả về giá trị đánh giá [1, 4, 9, 16, 25]
4.
Mục đích của hàm
[1, 4, 9, 16, 25]
1 là được sử dụng làm tham số cho các hàm chấp nhận hàm làm tham số, như chúng ta đã làm với [1, 4, 9, 16, 25]
7 ở trên. Python cho phép bạn gán hàm [1, 4, 9, 16, 25]
1 cho một biến, nhưng hướng dẫn kiểu PEP 8 khuyên bạn không nên làm như vậy. Nếu bạn muốn gán một hàm đơn giản cho một biến, tốt hơn là thực hiện nó dưới dạng định nghĩa một dòng. Điều này đảm bảo đối tượng kết quả được đặt tên đúng, cải thiện khả năng đọc truy nguyên. Tại sao nên sử dụng Hàm Lambda?
Sau đoạn cuối, bạn có thể thắc mắc tại sao bạn lại muốn sử dụng hàm
[1, 4, 9, 16, 25]
1. Rốt cuộc, bất cứ điều gì có thể được thực hiện với hàm [1, 4, 9, 16, 25]
1 đều có thể được thực hiện với hàm được đặt tên.
Câu trả lời cho điều này là mục đích của hàm
[1, 4, 9, 16, 25]
1 là nằm bên trong các biểu thức lớn hơn đại diện cho một phép tính. Một cách để nghĩ về điều này là tương tự với các biến và giá trị. Hãy xem xét đoạn mã sau. lambda x_1,..., x_n : expression[x_1, ..., x_n]
0Biến
lambda x_1,..., x_n : expression[x_1, ..., x_n]
1 là phần giữ chỗ [hoặc tên] cho số nguyên lambda x_1,..., x_n : expression[x_1, ..., x_n]
2. Chẳng hạn, gọi lambda x_1,..., x_n : expression[x_1, ..., x_n]
3 và lambda x_1,..., x_n : expression[x_1, ..., x_n]
4 cho kết quả chính xác như nhau. Trong trường hợp hàmlambda x_1,..., x_n : expression[x_1, ..., x_n]
5Hàm
lambda x_1,..., x_n : expression[x_1, ..., x_n]
68 là một trình giữ chỗ để tính toán bình phương một số. Tính toán này có thể được viết theo cách không tên là lambda x_1,..., x_n : expression[x_1, ..., x_n]
6.
Sau sự lạc đề triết học này, chúng ta hãy xem một số ví dụ về các ứng dụng cho hàm
[1, 4, 9, 16, 25]
1.
Sử dụng Lambda với Hàm sorted[]
Hàm
lambda x_1,..., x_n : expression[x_1, ..., x_n]
8 sắp xếp một iterable. Nó chấp nhận một hàm làm đối số lambda x_1,..., x_n : expression[x_1, ..., x_n]
9 của nó và kết quả của hàm được áp dụng cho từng phần tử của iterable được sử dụng để sắp xếp các phần tử.
Điều này hoàn toàn phù hợp với hàm
[1, 4, 9, 16, 25]
1. bằng cách đặt tham số lambda x_1,..., x_n : expression[x_1, ..., x_n]
9 với hàm [1, 4, 9, 16, 25]
1, chúng ta có thể sắp xếp theo bất kỳ loại thuộc tính nào của các phần tử. Ví dụ: chúng ta có thể sắp xếp danh sách tên theo họ. [1, 4, 9, 16, 25]
4[1, 4, 9, 16, 25]
5Sử dụng Lambda với chức năng 'filter[]'
Hàm
lambda x_1,..., x_n : expression[x_1, ..., x_n]
03 có cú pháp như sau. lambda x_1,..., x_n : expression[x_1, ..., x_n]
04 và nó xuất ra các phần tử của lambda x_1,..., x_n : expression[x_1, ..., x_n]
60 đánh giá lambda x_1,..., x_n : expression[x_1, ..., x_n]
06 là đúng [tương tự như mệnh đề lambda x_1,..., x_n : expression[x_1, ..., x_n]
07 trong SQL]. Chúng ta có thể sử dụng các hàm [1, 4, 9, 16, 25]
1 làm tham số cho lambda x_1,..., x_n : expression[x_1, ..., x_n]
03 để chọn các phần tử từ một lần lặpXem xét ví dụ sau
[1, 4, 9, 16, 25]
3[1, 4, 9, 16, 25]
0lambda x_1,..., x_n : expression[x_1, ..., x_n]
03 áp dụng hàm [1, 4, 9, 16, 25]
1 lambda x_1,..., x_n : expression[x_1, ..., x_n]
52 cho từng phần tử của lambda x_1,..., x_n : expression[x_1, ..., x_n]
53 và trả về một đối tượng lambda x_1,..., x_n : expression[x_1, ..., x_n]
54. Chúng tôi truy cập các phần tử bằng cách chuyển nó thành lambda x_1,..., x_n : expression[x_1, ..., x_n]
63.
Sử dụng Lambda với Hàm map[]
Ví dụ cuối cùng của chúng ta là thứ mà chúng ta đã thấy trong phần giới thiệu - hàm
[1, 4, 9, 16, 25]
7. Cú pháp hàm [1, 4, 9, 16, 25]
7 là. [1, 4, 9, 16, 25]
8 và [1, 4, 9, 16, 25]
7 áp dụng [1, 4, 9, 16, 25]
9 cho mỗi phần tử của lambda x_1,..., x_n : expression[x_1, ..., x_n]
60, trả về một đối tượng [1, 4, 9, 16, 25]
42 có thể được truy cập bằng cách truyền tới một lambda x_1,..., x_n : expression[x_1, ..., x_n]
63. Chúng ta đã thấy cách áp dụng điều này cho các danh sách, nhưng nó có thể được áp dụng cho các ký tự bằng cách sử dụng phương pháp
[1, 4, 9, 16, 25]
44[1, 4, 9, 16, 25]
1[1, 4, 9, 16, 25]
2hoặc đến một chuỗi
[1, 4, 9, 16, 25]
3____04Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Chúng ta có thể sử dụng hàm
[1, 4, 9, 16, 25]
7 theo những cách khéo léo - một ví dụ là áp dụng nhiều hàm cho cùng một đầu vàoVí dụ: giả sử bạn đang tạo API nhận chuỗi văn bản và bạn muốn áp dụng danh sách hàm cho API đó
Mỗi chức năng trích xuất một số tính năng từ văn bản. Các tính năng chúng tôi muốn trích xuất là số lượng từ, từ thứ hai và chữ cái thứ tư của từ thứ tư