Chúng ta có thể gọi hàm lambda trong python không?

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]
0

Biế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àm

lambda x_1,..., x_n : expression[x_1, ..., x_n]
5

Hà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]
5

Sử 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ặp

Xem xét ví dụ sau

[1, 4, 9, 16, 25]
3
[1, 4, 9, 16, 25]
0

lambda 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]
2

hoặc đến một chuỗi

[1, 4, 9, 16, 25]
3____04

Hã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ào

Ví 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ư

Hàm lambda[] được gọi như thế nào?

Hàm Lambda, còn được gọi là ' Hàm ẩn danh ' giống như một hàm python thông thường nhưng có thể được định nghĩa mà không cần tên. Trong khi các chức năng thông thường được xác định bằng từ khóa def, thì các chức năng ẩn danh được xác định bằng từ khóa lambda. Tuy nhiên, chúng bị giới hạn trong một dòng biểu thức.

Chúng ta có thể sử dụng hàm lambda trong Python ở đâu?

Lưu ý rằng chúng tôi sử dụng các hàm lambda rất nhiều với các lớp python nhận một hàm làm đối số , chẳng hạn như map[] và . Chúng còn được gọi là các hàm bậc cao hơn.

Chủ Đề