Bản đồ Python () áp dụng một hàm trên tất cả các mục của một trình vòng lặp được cung cấp làm đầu vào. Ví dụ, một trình lặp có thể là một danh sách, một bộ, một tập hợp, một từ điển, một chuỗi và nó trả về một đối tượng bản đồ có thể lặp lại. Bản đồ Python () là một hàm được tích hợp sẵn.
Trong hướng dẫn này, bạn sẽ học:
- Cú pháp:
- Hàm map () hoạt động như thế nào?
- Sử dụng map () với các hàm tích hợp sẵn trong Python
- Sử dụng map () với một chuỗi làm trình lặp
- Sử dụng map () với listof Numbers
- Sử dụng map () với Tuple
- Sử dụng map () với Từ điển
- Sử dụng map () với Set
- Sử dụng map () với hàm Lambda
- Sử dụng nhiều lặp lại bên trong hàm map ()
Cú pháp:
map(function, iterator1,iterator2… iteratorN)
Thông số
Đây là hai điều quan trọng
- function: Một chức năng bắt buộc được cung cấp cho ánh xạ, sẽ được áp dụng cho tất cả các mục có sẵn trong trình lặp.
- iterator: Một đối tượng bắt buộc có thể lặp lại. Nó có thể là một danh sách, một bộ tuple, v.v. Bạn có thể chuyển nhiều đối tượng trình vòng lặp vào hàm map ().
Giá trị trả lại
Hàm map () sẽ áp dụng hàm đã cho trên tất cả các mục bên trong trình vòng lặp và trả về một đối tượng bản đồ có thể lặp lại, tức là một bộ tuple, một danh sách, v.v.
Hàm map () hoạt động như thế nào?
Hàm map () nhận hai đầu vào là một hàm và một đối tượng có thể lặp lại. Hàm được cấp cho map () là một hàm bình thường và nó sẽ lặp lại trên tất cả các giá trị có trong đối tượng có thể lặp đã cho.
Ví dụ, hãy xem bạn có một danh sách các số và bạn muốn tìm bình phương của mỗi số.
Để nhận được đầu ra, chúng ta cần hàm sẽ trả về bình phương của một số đã cho. Chức năng sẽ như sau:
def square(n):return n*n
Danh sách các mục mà chúng tôi muốn tìm hình vuông như sau:
my_list = [2,3,4,5,6,7,8,9]
Bây giờ chúng ta hãy sử dụng hàm tích hợp sẵn của map () python để lấy bình phương của từng mục trong my_list.
Mã cuối cùng như sau:
def square(n):return n*nmy_list = [2,3,4,5,6,7,8,9]updated_list = map(square, my_list)print(updated_list)print(list(updated_list))
Đầu ra:
Đầu ra của hàm map (), như được thấy trong đầu ra, là một đối tượng bản đồ được hiển thị trên màn hình dưới dạng <đối tượng bản đồ tại 0x0000002C59601748>.
Bạn sẽ phải lặp lại kết quả đầu ra từ bản đồ bằng cách sử dụng vòng lặp for hoặc sử dụng phương thức list () để có được kết quả cuối cùng. Tôi đã sử dụng list () trong mã hiển thị các giá trị bên trong danh sách đã cho.
Vì vậy, sử dụng hàm map (), chúng ta có thể nhận được bình phương của mỗi số. Danh sách được cung cấp cho ánh xạ là [2,3,4,5,6,7,8,9] và sử dụng hàm square () đầu ra từ map (), chúng tôi nhận được là [4, 9, 16, 25, 36, 49, 64, 81].
Bản đồ hàm () áp dụng hàm vuông () trên tất cả các mục trong danh sách. Ví dụ, biến my_list và cập nhật danh sách với bình phương của mỗi số. Dữ liệu ra được lưu trữ trong biến updated_list.
Sử dụng map () với các hàm tích hợp sẵn trong Python
Hàm map () trong Python là một hàm dựng sẵn và cũng có thể được sử dụng với các hàm dựng sẵn khác có sẵn trong Python. Trong ví dụ này, chúng ta sẽ sử dụng hàm tích hợp sẵn của Python round () để làm tròn các giá trị đã cho.
Thí dụ:
Danh sách mà tôi có là my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907].
Tôi cần các giá trị làm tròn cho mỗi mục có trong danh sách. Chúng ta sẽ sử dụng round () làm hàm để ánh xạ ().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]updated_list = map(round, my_list)print(updated_list)print(list(updated_list))
Đầu ra:
Hàm round () được áp dụng cho tất cả các mục trong danh sách và nó trả về một danh sách với tất cả các giá trị được làm tròn như được hiển thị trong đầu ra.
Sử dụng map () với một chuỗi làm trình lặp
Chúng ta cũng có thể sử dụng map () trên một chuỗi. Trong Python, một chuỗi hoạt động giống như một mảng để chúng ta có thể dễ dàng sử dụng nó bên trong map ().
Trong ví dụ, chúng ta có một hàm myMapFunc () sẽ xử lý việc chuyển đổi chuỗi đã cho thành chữ hoa. Hàm myMapFunc () được cấp cho hàm map ().
def myMapFunc(s):return s.upper()my_str = "welcome to guru99 tutorials!"updated_list = map(myMapFunc, my_str)print(updated_list)for i in updated_list:print(i, end)
Đầu ra:
Sử dụng map () với listof Numbers
Để làm việc với danh sách trong map (), sẽ lấy một danh sách các số và nhân mỗi số trong danh sách với 10.
Danh sách mà chúng ta sẽ sử dụng là: [2,3,4,5,6,7,8,9]. Hàm myMapFunc () xử lý nhân một số đã cho với 10. Hàm được đưa ra để ánh xạ cùng với danh sách.
Thí dụ:
def myMapFunc(n):return n*10my_list = [2,3,4,5,6,7,8,9]updated_list = map(myMapFunc, my_list)print(updated_list)print(list(updated_list))
Đầu ra:
Kết quả mà chúng tôi thấy là mỗi số trong danh sách là
nhân với 10.
Sử dụng map () với Tuple
Tuple là một đối tượng trong Python có các mục được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc tròn. Trong ví dụ, chúng ta sẽ lấy một bộ giá trị chuỗi. Hàm mà chúng ta sẽ sử dụng sẽ chuyển đổi các giá trị đã cho thành chữ hoa.
Thí dụ:
def myMapFunc(n):return n.upper()my_tuple = ('php','java','python','c++','c')updated_list = map(myMapFunc, my_tuple)print(updated_list)print(list(updated_list))
Đầu ra:
Đầu ra chúng ta nhận được là một bộ dữ liệu ngược với tất cả các giá trị trong đó được chuyển đổi thành chữ hoa.
Sử dụng map () với Từ điển
Từ điển trong Python được tạo bằng dấu ngoặc nhọn ({}). Vì từ điển là một trình lặp, bạn có thể sử dụng nó bên trong hàm map (). Bây giờ chúng ta hãy sử dụng một từ điển như một trình vòng lặp bên trong hàm map ().
Ví dụ sau cho thấy hoạt động của trình vòng lặp từ điển bên trong map ()
def myMapFunc(n):return n*10my_dict = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_dict)print(finalitems)print(list(finalitems))
Đầu ra:
Sử dụng map () với Set
Đặt trong Python là một tập hợp các mục không có thứ tự trong dấu ngoặc nhọn (()). Vì set () cũng là một trình lặp, bạn có thể sử dụng nó bên trong hàm map ().
Đây là một ví dụ hoạt động của việc sử dụng set làm trình vòng lặp bên trong map ()
def myMapFunc(n):return n*10my_set = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_set)print(finalitems)print(list(finalitems))
Đầu ra:
Sử dụng map () với hàm Lambda
Trong Python, các biểu thức lambda được sử dụng để xây dựng các hàm ẩn danh. Bạn sẽ phải sử dụng từ khóa lambda giống như bạn sử dụng def để định nghĩa các hàm thông thường.
Vì vậy, trong ví dụ, chúng ta sẽ sử dụng hàm lambda bên trong map (). Hàm lambda sẽ nhân mỗi giá trị trong danh sách với 10.
Thí dụ:
my_list = [2,3,4,5,6,7,8,9]updated_list = map(lambda x: x * 10, my_list)print(updated_list)print(list(updated_list))
Đầu ra:
Sử dụng nhiều lặp lại bên trong hàm map ()
Ví dụ 1: Truyền hai trình vòng lặp danh sách tới map ()
Bạn có thể gửi nhiều hơn một trình vòng lặp tức là một danh sách, một bộ dữ liệu, v.v. cùng một lúc đến hàm map ().
Ví dụ: nếu bạn muốn thêm hai danh sách. Điều này cũng có thể được thực hiện bằng cách sử dụng hàm map (). Chúng ta sẽ sử dụng hai danh sách my_list1 và my_list2.
Trong ví dụ dưới đây, mục đầu tiên trong my_list1 được thêm vào mục đầu tiên của my_list2. Hàm myMapFunc () nhận các mục của my_list1 và my_list2 và trả về tổng của cả hai.
Đây là ví dụ hoạt động của việc thêm hai danh sách đã cho bằng cách sử dụng hàm map ().
def myMapFunc(list1, list2):return list1+list2my_list1 = [2,3,4,5,6,7,8,9]my_list2 = [4,8,12,16,20,24,28]updated_list = map(myMapFunc, my_list1,my_list2)print(updated_list)print(list(updated_list))
Đầu ra:
Ví dụ 2: Truyền một Tuple và một trình lặp danh sách tới map ()
Chúng ta sẽ sử dụng một danh sách và một trình lặp tuple trong hàm map (). Hàm được cấp cho bản đồ - myMapFunc () sẽ lấy các mục từ danh sách và Tuple. Các mục sẽ được nối với nhau bằng dấu gạch dưới (_). Ví dụ làm việc như được hiển thị bên dưới:
def myMapFunc(list1, tuple1):return list1+"_"+tuple1my_list = ['a','b', 'b', 'd', 'e']my_tuple = ('PHP','Java','Python','C++','C')updated_list = map(myMapFunc, my_list,my_tuple)print(updated_list)print(list(updated_list))
Đầu ra:
Tóm lược
- Bản đồ Python () là một hàm tích hợp áp dụng một hàm trên tất cả các mục của một trình vòng lặp được cung cấp làm đầu vào. Ví dụ, một trình vòng lặp có thể là một danh sách, một bộ tuple, một chuỗi, v.v. và nó trả về một đối tượng bản đồ có thể lặp lại.
- Hàm map () sẽ áp dụng hàm đã cho trên tất cả các mục bên trong trình vòng lặp và trả về một đối tượng bản đồ có thể lặp lại, tức là một bộ tuple, một danh sách, v.v.
- Hàm map () trong Python là một hàm dựng sẵn và cũng có thể được sử dụng với các hàm dựng sẵn khác có sẵn trong Python.
- Tuple là một đối tượng trong Python có các mục được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc tròn. Trong ví dụ sẽ lấy một bộ giá trị chuỗi. Hàm mà chúng ta sẽ sử dụng sẽ chuyển đổi các giá trị đã cho thành chữ hoa.
- Từ điển trong Python được tạo bằng dấu ngoặc nhọn ({}). Vì từ điển là một trình lặp, bạn có thể sử dụng nó bên trong hàm map ().
- Đặt trong Python là một tập hợp các mục không có thứ tự trong dấu ngoặc nhọn (()). Vì set () cũng là một trình lặp, bạn có thể sử dụng nó bên trong hàm map ().
- Trong Python, các biểu thức lambda (hoặc các biểu mẫu lambda) được sử dụng để xây dựng các hàm ẩn danh. Vì vậy, từ khóa lambda phải được sử dụng khi bạn muốn sử dụng lambda bên trong bản đồ ().
- Bạn có thể gửi nhiều hơn một trình lặp tức là một danh sách, một bộ dữ liệu tới hàm map ().