Bộ lọc bản đồ giảm python

Các hàm map(), filter() và reduce() của Python thêm một chút lập trình chức năng vào ngôn ngữ. Cả ba hàm này đều là các hàm tiện lợi có thể được thay thế bằng các vòng lặp hoặc Hiểu danh sách nhưng cung cấp một giải pháp ngắn gọn và thanh lịch hơn cho một số vấn đề

map(), filter(), và reduce() đều hoạt động theo cùng một cách. Các hàm này chấp nhận một hàm và một chuỗi các phần tử và trả về kết quả của việc áp dụng hàm nhận được cho từng phần tử trong chuỗi

hàm map()

Giống như reduce(), hàm map() cho phép bạn lặp qua từng mục trong một lần lặp. Mặt khác, Map() hoạt động độc lập trên từng mục thay vì tạo ra một kết quả duy nhất

Cuối cùng, hàm map() có thể được sử dụng để thực hiện các phép toán trên hai hoặc nhiều danh sách. Nó thậm chí có thể được sử dụng để thao tác với bất kỳ loại mảng nào

Độ phức tạp thời gian của hàm map()= O(n)

cú pháp

map(function, iterable)

Thông số

  • chức năng - Chức năng được sử dụng trong mã

  • iterable - Đây là giá trị được lặp lại trong mã

Thuật toán (Các bước)

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn –

  • Tạo một hàm có tên multiNumbers trả về kết quả phép nhân của số được truyền cho nó

  • Trả về số đã cho nhân với 3, bên trong hàm

  • Sử dụng hàm map() để áp dụng hàm multiNumbers() cho từng phần tử của danh sách bằng cách chuyển tên hàm và liệt kê dưới dạng đối số cho nó

  • In các mục danh sách kết quả sau khi nhân chúng với 3

Mã số

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

Multiplying list elements with 3:
3
9
15
6
18
30

chức năng bộ lọc()

Hàm filter() tạo một trình vòng lặp mới để lọc các phần tử từ phần tử đã tạo trước đó (như danh sách, bộ dữ liệu hoặc từ điển)

Hàm filter() kiểm tra xem điều kiện đã cho có tồn tại trong chuỗi hay không rồi in kết quả

Độ phức tạp thời gian của hàm filter() = O (n)

cú pháp

filter(function, iterable)

Thông số

  • chức năng - Chức năng được sử dụng trong mã

  • iterable - Đây là giá trị được lặp lại trong mã

Thuật toán (Các bước)

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn –

  • Tạo một chức năng với tên voteAge trả về độ tuổi đủ điều kiện để bỏ phiếu từ danh sách

  • Sử dụng câu lệnh điều kiện if để kiểm tra xem số được truyền vào hàm có lớn hơn hoặc bằng 18 không

  • Nếu tuyên bố trên là đúng Trả lại số

  • Tạo một biến để lưu trữ danh sách đầu vào

  • Sử dụng hàm filter() bằng cách chuyển tên hàm và nhập danh sách làm đối số cho hàm để lọc độ tuổi lớn hơn hoặc bằng 18 từ danh sách. Ở đây, nó áp dụng hàmvotingAge() cho mọi thành phần của danh sách và kết quả chỉ lưu trữ các giá trị của danh sách được trả về bởi hàmvotingAge()(Ở đây hàmvotingAge() trả về số nếu nó lớn hơn 18)

  • In đối tượng bộ lọc

  • Sử dụng hàm list() (trả về danh sách có thể lặp lại), để chuyển đổi đối tượng bộ lọc ở trên thành danh sách và in nó

Thí dụ

đầu ra

Khi thực thi, chương trình trên sẽ tạo ra đầu ra sau -

Eligibility ages for voting from the input list: [20, 18, 25, 19]

giảm()

Trong Python, hàm reduce() lặp qua từng mục trong danh sách hoặc kiểu dữ liệu có thể lặp khác, trả về một giá trị. Nó nằm trong thư viện funcools. Điều này hiệu quả hơn vòng lặp

cú pháp

reduce(function, iterable)

Thông số

  • chức năng - Chức năng được sử dụng trong mã

  • iterable - Đây là giá trị được lặp lại trong mã

Thuật toán (Các bước)

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn –

  • Sử dụng từ khóa import để nhập hàm reduce() từ mô-đun funcools

  • Tạo một hàm có tên addNumbers() trả về tổng của tất cả các mục trong danh sách

  • Tạo một biến để lưu trữ danh sách đầu vào

  • Sử dụng hàm reduce(), bỏ qua hàm addNumbers() và nhập danh sách làm đối số để lấy tổng của tất cả các mục trong danh sách

Thí dụ

đầu ra

The sum of all list items:
52

Khi chúng ta chuyển hàm addNumbers() và danh sách đầu vào làm đối số cho hàm reduce(), nó sẽ lấy hai phần tử của danh sách và tính tổng chúng để tạo thành một phần tử, sau đó lấy một phần tử danh sách khác và cộng lại để tạo thành một phần tử

Phần kết luận

Bài viết này đề cập đến các hàm map(), reduce() và filter(), cũng như cú pháp và ví dụ của chúng

Bộ lọc bản đồ giảm trong Python là gì?

Bản đồ, Bộ lọc và Giảm là mô hình của lập trình chức năng . Chúng cho phép lập trình viên (bạn) viết mã đơn giản hơn, ngắn hơn mà không nhất thiết phải bận tâm về những điều phức tạp như vòng lặp và phân nhánh.

Sự khác biệt giữa bản đồ bộ lọc và giảm trong Python là gì?

reduce() hoạt động khác với map() và filter(). Nó không trả về danh sách mới dựa trên chức năng và khả năng lặp lại mà chúng tôi đã thông qua. Thay vào đó, nó trả về một giá trị duy nhất . Ngoài ra, trong Python 3, reduce() không còn là hàm tích hợp nữa và có thể tìm thấy hàm này trong mô-đun funcools.

Bản đồ bộ lọc và giảm là gì?

Ánh xạ, rút ​​gọn và lọc đều là các phương thức mảng trong JavaScript . Mỗi người sẽ lặp qua một mảng và thực hiện một phép biến đổi hoặc tính toán. Mỗi cái sẽ trả về một mảng mới dựa trên kết quả của hàm.

Là giảm nhanh hơn bản đồ và bộ lọc?

reduce() chắc chắn là nhanh hơn ~94% thời gian .