Hướng dẫn dùng polor form python

Hàm map() trả về  đối tượng map (là một trình lặp) của các kết quả sau khi áp dụng hàm đã cho cho từng mục của một có thể lặp nhất định (danh sách, tuple, v.v.)

Cú pháp

map(fun, iter)

Tham số

fun: Nó là một hàm mà map chuyển từng phần tử của một đối tượng lặp lại đã cho.

iter: Nó là một tệp có thể lặp lại sẽ được ánh xạ.

LƯU Ý: Bạn có thể chuyển một hoặc nhiều hàm có thể lặp lại cho hàm map ().

Returns :

Trả về danh sách kết quả sau khi áp dụng hàm đã cho

cho từng mục của một đối tượng có thể lặp lại nhất định (danh sách, bộ tuple, v.v.)

LƯU Ý: Giá trị trả về từ map () (đối tượng map) sau đó có thể được chuyển cho các hàm như list () (để tạo danh sách), set () (để tạo một tập hợp).

# Python program to demonstrate working
# of map.
  
# Return double of n
def addition(n):
    return n + n
  
# We double all numbers using map()
numbers = (1, 2, 3, 4)
result = map(addition, numbers)
print(list(result))

Output

[2, 4, 6, 8]

Chúng ta cũng có thể sử dụng biểu thức lambda với bản đồ để đạt được kết quả trên.

# Double all numbers using map and lambda
  
numbers = (1, 2, 3, 4)
result = map(lambda x: x + x, numbers)
print(list(result))

output

[2, 4, 6, 8]

CODE 3

# Add two lists using map and lambda
  
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
  
result = map(lambda x, y: x + y, numbers1, numbers2)
print(list(result))

output

[5, 7, 9]

Code 4

# List of strings
l = ['sat', 'bat', 'cat', 'mat']
  
# map() can listify the list of strings individually
test = list(map(list, l))
print(test)

output

[['s', 'a', 't'], ['b', 'a', 't'], ['c', 'a', 't'], ['m', 'a', 't']]

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Nguồn và Tài liệu tiếng anh tham khảo:

  • w3school
  • python.org

Tài liệu từ cafedev:

  • Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
  • Tự học ML bằng Python từ cơ bản tới nâng cao.
  • Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!

Map là một trong những function cực chất mà ngôn ngữ lập trình nào cũng có để xử lý mảng một cách nhanh chóng và hiệu quả. Trong Python, map là một hàm tích hợp cho phép lập trình viên xử lý và chuyển đổi tất cả các mục trong một tệp iratable mà không cần sử dụng vòng lặp for. Việc sử dụng mapping rất hữu ích khi bạn cần áp dụng một hàm chuyển đổi (transformation function) cho mỗi mục trong iterable và chuyển đổi chúng thành một mục có thể lặp lại mới.

Trong quá trình thực hiện dự án, đôi khi bạn phải đối mặt với tình huống mà bạn cần thực hiện cùng một thao tác trên tất cả các mục trong đầu vào của một iterable để tạo ra một iterable mới. (iterable trong Python là một đối tượng cho phép bạn duyệt qua các phần tử của nó với vòng lặp for). Cách nhanh nhất và phổ biến nhất để thực hiện điều này là sử dụng vòng lặp for của Python. Tuy nhiên bạn cũng có thể thực hiện việc này mà không cần sử dụng vòng lặp bằng cách sử dụng map(). Hàm map() trong Python áp dụng một hàm khác trên một tập hợp đã cho (List / String / Dictionary, v.v.) và trả về map object.

map() lặp qua các mục trong input của iterable và trả lại một iterator là kết quả của việc áp dụng hàm chuyển đổi ( transformation function) cho tất cả các mục đầu vào iterable ban đầu. map () sẽ lấy một object function và một iterable (hoặc nhiều đoạn lặp) làm đối số và trả về một trình lặp tạo ra các mục được chuyển đổi theo yêu cầu. Cú pháp của map() như sau:

map(function, iterable[, iterable1, iterable2,..., iterableN])

Trong đó: 

  • Function là hàm xử lý logic qua mỗi lần lặp giá trị trong iterable
  • Iterable là các list, dict mà các bạn cần lặp

Đối số đầu tiên trong map() là một hàm chuyển đổi, nói cách khác, nó có chức năng chuyển đổi mỗi mục gốc thành một mục mới (đã chuyển đổi). Đối số này có thể là các hàm chức năng, lớp, method,..

Map() được tối ưu hóa cao hơn nên vòng lặp bên trong của nó có thể hiệu quả hơn khi so sánh với vòng lặp for thông thường trong Python. Đây là một lợi thế lớn của việc sử dụng Map() trong Python. Một lợi thế thứ hai của việc sử dụng map() liên quan đến tiêu thụ bộ  nhớ. Với một vòng lặp for bạn cần phải lưu trữ toàn bộ danh sách trong bộ nhớ của hệ thống. Tuy nhiên, với map(), bạn sẽ nhận được các mục mà bạn yêu cầu và chỉ một mục được lưu trong bộ nhớ hệ điều hành của bạn ở một thời điểm cụ thể.

>>> Xem thêm: Pandas trong Python là gì? Giới thiệu chi tiết về Pandas cho người mới bắt đầu

Sử dụng map() với các hàm khác nhau

Bạn có thể sử dụng bất kỳ hàm callable nào trong Python với map(). Điều kiện duy nhất là hàm callable này phải lấy một đối số và trả về một giá trị cụ thể. Ví dụ, bạn có thể sử dụng các lớp, objects thực hiện một phương thức đặc biệt được gọi là __call__(), phương thức lớp, tĩnh và hàm.

Có một số chức năng được cãi sẵn mà bạn có thể sử dụng trong  map(). Ví dụ:

>>> numbers = [-2, -1, 0, 1, 2]

>>> abs_values = list(map(abs, numbers))

>>> abs_values

[2, 1, 0, 1, 2]

>>> list(map(float, numbers))

[-2.0, -1.0, 0.0, 1.0, 2.0]

>>> words = ["Welcome", "to", "Real", "Python"]

>>> list(map(len, words))

[7, 2, 4, 6]

Bạn có thể sử dụng bất kỳ hàm tích hợp nào với map() điều kiện là hàm nhận một đối số và trả về một giá trị.

Một ví dụ thường thấy khi sử dụng map() là dùng hàm lambda (hàm vô danh) làm đối số đầu tiên. Lambda là hàm hữu ích khi bạn cần chuyển một hàm biểu thức đến map(). Chẳng hạn bạn có thể thực hiện lại ví dụ về các giá trị bình phương bằng cách sử dụng một hàm lambda như sau:

>>> numbers = [1, 2, 3, 4, 5]

>>> squared = map(lambda num: num ** 2, numbers)

>>> list(squared)

[1, 4, 9, 16, 25]

>>> Xem thêm: Khóa học lập trình Python

Xử lý Multiple Input Iterable với map()

Nếu bạn cung cấp nhiều iterable trong map(), thì các hàm chuyển đổi sẽ cần nhận nhiều đối số tương đương với mỗi iterable mà bạn chuyển vào. Mỗi lần lặp map() sẽ chuyển giá trị từ mỗi tệp iterable làm đối số cho hàm function. Quá trình này sẽ dừng lại ở cuối của iterable ngắn nhất.

Cùng xem xét ví dụ sử dụng pow như sau:

>>> first_it = [1, 2, 3]

>>> second_it = [4, 5, 6, 7]

>>> list(map(pow, first_it, second_it))

[1, 32, 729]

Trong ví dụ này, pow() nhận hai đối số x và y, và trả về giá trị của x^y. Trong lần lặp này, x là 1, y là 4, kết quả nhận được là 1, trong lần lặp thứ hai, x là 2, y là 5, kết quả là 32,.... Việc lặp lại sẽ kết thúc ở điểm cuối của  iterable ngắn nhất.

Kết luận: Python map() cho phép bạn thực hiện các thao tác mapping trên các tệp iterable. Nhìn chung, nó sẽ cho phép bạn xử lý và chuyển đổi các tệp iterable mà không cần  phải sử dụng vòng lặp như for. Giờ đây, bạn có thể sử dụng map() trong quá trình lập trình thay vì các vòng lặp để tiết kiệm thời gian và hiệu quả làm việc.

>>> Xem thêm các bài viết hữu ích tại www.t3h.edu.vn