Bản đồ, Lọc và Giảm các Hàm trong Python: Tất cả những gì bạn cần biết



Tìm hiểu các hàm map (), filter () và Reduce () trong Python là gì. Đồng thời biết cách sử dụng chúng với lambda và các hàm do người dùng định nghĩa và cùng với nhau.

Python cung cấp nhiều hàm tích hợp được xác định trước và người dùng cuối có thể sử dụng bằng cách gọi chúng. Các chức năng này không chỉ đơn giản hóa công việc của các lập trình viên mà còn tạo ra một môi trường mã hóa tiêu chuẩn. Trong bài viết này, bạn sẽ học về ba hàm ấn tượng đó là map (), filter và Reduce () trong .

Trước khi tiếp tục, hãy xem qua nội dung:





Vậy hãy bắt đầu. :)

Các hàm map (), filter () và Reduce () trong Python là gì?

Như đã đề cập trước đó, map (), filter () và Reduce () được tạo sẵn của Python. Các chức năng này cho phép khía cạnh lập trình chức năng của . Trong lập trình hàm, các đối số được truyền là yếu tố duy nhất quyết định kết quả đầu ra. Các hàm này có thể nhận bất kỳ chức năng nào khác làm tham số và cũng có thể được cung cấp cho các chức năng khác dưới dạng tham số. Vì vậy, bây giờ chúng ta hãy xem xét sâu hơn từng chức năng này.



Hàm map ():

Hàm map () là một kiểu bậc cao hơn. Như đã đề cập trước đó, hàm này nhận một hàm khác làm tham số cùng với một chuỗi các tệp lặp và trả về kết quả đầu ra sau khi áp dụng hàm cho mỗi hiện tại có thể lặp trong chuỗi. Cú pháp của nó như sau:

TỔNG HỢP:

bản đồ (chức năng, lặp lại)



Ở đây, hàm định nghĩa một biểu thức lần lượt được áp dụng cho các vòng lặp. Chức năng bản đồ có thể sử dụng các chức năng do người dùng xác định cũng như hàm lambda như một tham số.

Sử dụng các Hàm do người dùng xác định và Lambda trong:

Các hàm do người dùng xác định trong map ():

Hàm map () có thể nhận các hàm do người dùng xác định làm tham số. Các tham số của các chức năng này do người dùng hoặc người lập trình thiết lập độc quyền. Ví dụ:

THÍ DỤ:

def newfunc (a): trả về a * a x = map (newfunc, (1,2,3,4)) #x là đối tượng bản đồ print (x) print (set (x))

ĐẦU RA:

{16, 1, 4, 9}

Như bạn có thể thấy, x là một đối tượng bản đồ. Đầu ra của phần tiếp theo hiển thị hàm bản đồ lấy newfunc () làm tham số của nó và sau đó nó áp dụng a * a cho tất cả các vòng lặp. Kết quả là, các giá trị của tất cả các vòng lặp được nhân với chính chúng và trả về.

làm thế nào để sử dụng phương pháp chuỗi

GHI CHÚ: Đầu ra không theo thứ tự giá trị của các vòng lặp vì tôi đã sử dụng hàm set (). Bạn cũng có thể sử dụng các hàm list () hoặc tuple () cho ví dụ:

THÍ DỤ:

def newfunc (a): trả về a * a x = map (newfunc, (1,2,3,4)) #x là đối tượng bản đồ print (x) print (list (x))

ĐẦU RA:

[1, 4, 9, 16]

Bạn cũng có thể chuyển nhiều hơn một danh sách các tham số. Ví dụ:

THÍ DỤ:

def func (a, b): trả về a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

ĐẦU RA:

(3, 6, 8)

Bây giờ hãy để chúng tôi xem cách bạn có thể sử dụng hàm lambda trong hàm map ().

Các hàm lambda trong map ():

Các hàm lambda là các hàm có bất kỳ tên nào. Các hàm này thường được cung cấp dưới dạng tham số cho các hàm khác. Bây giờ chúng ta hãy thử nhúng các hàm lambda vào trong hàm map (). Hãy xem xét ví dụ sau:

THÍ DỤ:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x: x + 3, tup)) print (newtuple)

ĐẦU RA:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

Kết quả ở trên là kết quả của việc áp dụng biểu thức lambda (x + 3) cho mỗi mục có trong bộ tuple.

Hàm filter ():

Hàm filter () được sử dụng để tạo danh sách đầu ra bao gồm các giá trị mà hàm trả về true. Cú pháp của nó như sau:

TỔNG HỢP:

bộ lọc (chức năng, lặp lại)

Cũng giống như map (), hàm này có thể được sử dụng cũng có thể lấy các hàm do người dùng định nghĩa cũng như các hàm lambda làm tham số.

THÍ DỤ:

def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

ĐẦU RA:

[3. 4]

Như bạn thấy, y là đối tượng bộ lọc và danh sách là danh sách các giá trị đúng với điều kiện (x> = 3).

Sử dụng lambda trong filter ():


Hàm lambda được sử dụng như một tham số thực sự xác định điều kiện cần được kiểm tra. Ví dụ:

THÍ DỤ:

y = filter (lambda x: (x> = 3), (1,2,3,4)) print (list (y))

ĐẦU RA: [3. 4]

Đoạn mã trên tạo ra kết quả tương tự như hàm trước đó.

Hàm Reduce ():

Hàm Reduce (), như tên mô tả, áp dụng một hàm đã cho cho các tệp lặp và trả về một giá trị duy nhất.

giảm bản đồ giảm bộ lọc-edureka

Cú pháp của hàm này như sau:

TỔNG HỢP:

giảm (hàm, lặp lại)

Hàm ở đây xác định biểu thức nào cần được áp dụng cho các vòng lặp. Hàm này cần được nhập từ functools mô-đun . Ví dụ:

THÍ DỤ:

từ nhập functools giảm bớt (lambda a, b: a + b, [23,21,45,98])

ĐẦU RA: 187

Trong ví dụ trên, hàm giảm liên tiếp thêm từng có thể lặp lại trong danh sách và trả về một đầu ra duy nhất.

Các hàm map (), filter () và Reduce () trong Python có thể được sử dụng cùng với nhau.

Sử dụng các hàm map (), filter () và Reduce () cùng với nhau:

Khi bạn làm điều này, các chức năng bên trong đầu tiên được giải quyết và sau đó các chức năng bên ngoài hoạt động trên đầu ra của các chức năng bên trong.

Đầu tiên chúng ta hãy thử truyền hàm filter () dưới dạng tham số cho hàm map ().

Sử dụng filter () trong map ():

Đoạn mã được đưa ra bên dưới trước tiên kiểm tra điều kiện (x> = 3) có đúng với các mục lặp. Sau đó, đầu ra được ánh xạ bằng cách sử dụng hàm map ().

cách sử dụng trình lặp

THÍ DỤ:

c = map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) print (list (c))

ĐẦU RA: [6, 8]

Nếu bạn lọc ra các số nguyên lớn hơn hoặc bằng 3 từ bộ giá trị đã cho, bạn nhận được kết quả là [3,4]. Sau đó, nếu bạn ánh xạ điều này bằng điều kiện (x + x), bạn sẽ nhận được [6,8], là kết quả đầu ra.

Sử dụng map () trong filter ():


Khi bạn sử dụng hàm map () trong hàm filter (), các mục lặp được vận hành trước bởi hàm map và sau đó điều kiện của filter () được áp dụng cho chúng.

THÍ DỤ:

c = filter (lambda x: (x> = 3), map (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (list (c) )

ĐẦU RA: [4, 6, 8]

Sử dụng map () và filter () trong Reduce ():

Đầu ra của các hàm bên trong được giảm theo điều kiện được cung cấp cho hàm Reduce ().

THÍ DỤ:

d = Reduce (lambda x, y: x + y, map (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)

ĐẦU RA: 14

Đầu ra là kết quả của [6,8], là kết quả của các hàm map () và filter () bên trong.

Với điều này, chúng ta đã đến cuối bài viết này về các hàm map (), filter () và Reduce trong Python. Tôi hy vọng bạn đã hiểu mọi thứ rõ ràng. Đảm bảo rằng bạn luyện tập nhiều nhất có thể và hoàn nguyên trải nghiệm của mình.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog “Hàm map (), filter () và Reduce () trong Python” và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.

Để có kiến ​​thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký tham gia trực tiếp với hỗ trợ 24/7 và truy cập trọn đời.