Lọc lambda Python

Hàm lambda là một hàm ẩn danh với cú pháp

sum_of_square = lambda x, y: x**2 + y**2
7. Biểu thức được thực thi trên các đối số và kết quả được trả về. Mỗi chức năng lambda bao gồm 3 phần

  • từ khóa lambda
  • Một biến ràng buộc x
  • Phần thân của biểu thức

Cú pháp — Biến đơn

Một ví dụ đơn giản.

sum_of_square = lambda x, y: x**2 + y**2
8 tương đương với định nghĩa hàm Python tiêu chuẩn như sau

def square[x]:
return x**2

Các trường hợp sử dụng như

sum_of_square = lambda x, y: x**2 + y**2
9 sẽ cho kết quả như nhau trong cả hai trường hợp

Cú pháp — Nhiều biến

Ví dụ lấy tổng bình phương 2 biến

sum_of_square = lambda x, y: x**2 + y**2

Đặc điểm

Như có thể thấy trong các ví dụ trước, hàm lambda có các đặc điểm sau

  1. Nó được viết dưới dạng một dòng biểu thức
  2. Nó không chứa các câu lệnh trong phần thân
  3. Nó không hỗ trợ chú thích kiểu hoặc khai báo biến bổ sung

Tại sao & Khi nào nên sử dụng Hàm Lambda?

  1. Trong hầu hết các trường hợp, các hàm lambda giảm số lượng dòng so với các định nghĩa hàm Python thông thường bằng cách sử dụng từ khóa
    sum_of_square = lambda x, y: x**2 + y**2
    0
  2. Chúng rất hữu ích khi tạm thời cần một chức năng trong một khoảng thời gian ngắn, thường được sử dụng bên trong một chức năng khác, chẳng hạn như
    sum_of_square = lambda x, y: x**2 + y**2
    1 ,
    sum_of_square = lambda x, y: x**2 + y**2
    2 ,
    sum_of_square = lambda x, y: x**2 + y**2
    3 và
    sum_of_square = lambda x, y: x**2 + y**2
    4

1. Lọc

Hàm lọc có dạng

sum_of_square = lambda x, y: x**2 + y**2
5. Nó được sử dụng để lọc các phần tử thỏa mãn các điều kiện nhất định từ một đối tượng có thể lặp lại, chẳng hạn như danh sách và tập hợp. Đối số
sum_of_square = lambda x, y: x**2 + y**2
6 thường được triển khai bằng hàm lambda

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]

2. Bản đồ

Hàm map có định dạng tương tự như

sum_of_square = lambda x, y: x**2 + y**2
1 và được sử dụng để thực hiện thao tác thống nhất cho tất cả các phần tử trong một chuỗi

sum_of_square = lambda x, y: x**2 + y**2
1

3. Giảm

cú pháp.

sum_of_square = lambda x, y: x**2 + y**2
8

Hàm

sum_of_square = lambda x, y: x**2 + y**2
4, giống như
sum_of_square = lambda x, y: x**2 + y**2
2, cũng được sử dụng để thực hiện thao tác
sum_of_square = lambda x, y: x**2 + y**2
6 trên mỗi phần tử trong
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]
2. Tuy nhiên, nó hoạt động hơi khác một chút ở chỗ thao tác được thực hiện giữa các phần tử, thay vì được thực hiện trên từng phần tử riêng biệt

Ví dụ:

sum_of_square = lambda x, y: x**2 + y**2
2 được sử dụng nếu bạn muốn nhân đôi từng phần tử, nhưng
sum_of_square = lambda x, y: x**2 + y**2
4 được sử dụng nếu bạn muốn lấy tổng của tất cả các phần tử trong dãy

sum_of_square = lambda x, y: x**2 + y**2
9

4. Các trường hợp sử dụng khác

Ví dụ: nếu chúng tôi có một danh sách giá và khối lượng được lấy từ sổ đặt hàng như sau.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]
5 , mỗi phần tử trong danh sách đại diện cho một cặp giá-khối lượng. Để sắp xếp danh sách, chúng ta có thể sử dụng các hàm lambda để chỉ định khóa được sử dụng để sắp xếp

sum_of_square = lambda x, y: x**2 + y**2
1

Lưu ý cuối cùng

Bên trong, cả hai chức năng

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]
6 và
sum_of_square = lambda x, y: x**2 + y**2
0 đều hoạt động giống hệt nhau. Từ khóa
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]
8 hiển thị phiên bản mã byte Python có thể đọc được cho phép kiểm tra hướng dẫn. Đánh giá cả hai phiên bản của hàm
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = list[filter[lambda x: x % 2 == 0, numbers]]print[even_numbers]
>>> [2, 4, 6, 8, 10]
9 được định nghĩa ở đầu bài viết này

sum_of_square = lambda x, y: x**2 + y**2
6

Các quy trình được thực hiện bởi cả hai chức năng được quan sát là hoàn toàn giống nhau. Vì vậy, không có sự khác biệt thực sự trong cách họ thực hiện

Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Kiểm tra Sự bất hòa trong cộng đồng của chúng tôi và tham gia Tập thể tài năng của chúng tôi

Lambda và bộ lọc trong Python là gì?

Chúng ta có thể sử dụng hàm Lambda bên trong hàm tích hợp filter[] để tìm tất cả các số chia hết cho 13 trong danh sách . Trong Python, hàm ẩn danh có nghĩa là một hàm không có tên. Hàm filter[] trong Python nhận một hàm và một danh sách làm đối số.

Bộ lọc [] trong Python là gì?

Bộ lọc của Python[] là hàm tích hợp sẵn cho phép bạn xử lý một lần lặp và trích xuất các mục thỏa mãn một điều kiện nhất định . Quá trình này thường được gọi là hoạt động lọc.

Bộ lọc hoặc danh sách hiểu nhanh hơn?

Đối với danh sách lớn có một triệu phần tử, lọc danh sách bằng tính năng hiểu danh sách nhanh hơn 40% so với phương thức filter[] tích hợp sẵn . Cái này là cái gì? .

Bộ lọc Python có nhanh hơn không?

thông thường bộ lọc sẽ nhanh hơn một chút nếu sử dụng hàm dựng sẵn . Lưu câu trả lời này. Hiển thị hoạt động trên bài đăng này. Trong ví dụ của bạn, tốt hơn là sử dụng bộ lọc hơn là hiểu danh sách, theo định nghĩa.

Chủ Đề