Tôi có thể sử dụng bản đồ trên danh sách trong python không?
Ánh xạ trong lập trình bao gồm việc áp dụng hàm chuyển đổi cho một lần lặp để tạo một lần lặp mới. Sau đó, các phần tử trong iterable mới được xây dựng bằng cách gọi hàm chuyển đổi trên một phần tử trong iterable ban đầu
Show
Ánh xạ là một phần của lập trình hàm trong đó các phép tính được thực hiện bằng cách kết hợp các hàm lấy đối số và kết quả là trả về một (hoặc nhiều giá trị) cụ thể. Trong ví dụ này, chúng ta sẽ thấy hàm map() trong Python và cách ánh xạ một danh sách các phần tử Danh sách bản đồ PythonĐể ánh xạ các phần tử danh sách trong Python, hãy sử dụng hàm map(). Hàm map() áp dụng một hàm cho từng thành phần danh sách, trả về một đối tượng bản đồ có thể lặp lại và gọi phương thức next() để duyệt qua danh sách Bản đồ Python () là một phương thức tích hợp để áp dụng một hàm cho tất cả các thành phần của các đối tượng bản đồ có thể lặp lại và trả về chi tiết. Iterable bao gồm list, tuple, set và dictionary Giá trị trả về từ hàm map() là một đối tượng bản đồ và nếu chúng ta muốn tạo một danh sách từ nó, thì hãy sử dụng hàm list(); data = [19, 21, 46, 29, 11] def square_of_numbers(num): return num * num mappedList = map(square_of_numbers, data) print(next(mappedList)) print(next(mappedList)) print(next(mappedList)) đầu ra361 441 2116 Chúng ta có thể thấy rằng chúng ta đã định nghĩa một hàm gọi là square_of_numbers(), hàm này trả về bình phương của các số. Chúng ta chuyển hàm này cho hàm map(), hàm này trả về đối tượng bản đồ Để truy cập từng phần tử của đối tượng bản đồ, hãy sử dụng phương thức next(). Ví dụ: chúng ta có thể tạo danh sách đối tượng bản đồ bằng phương thức list() data = [19, 21, 46, 29, 11] def square_of_numbers(num): return num * num mappedList = map(square_of_numbers, data) print(list(mappedList)) đầu ra[361, 441, 2116, 841, 121] Danh sách bản đồ Python với hàm lambdaĐể sử dụng hàm map() và lambda với danh sách Python, hãy chuyển hàm lambda trong hàm map() và nó sẽ trả về đối tượng bản đồ. Hàm ẩn danh hoặc hàm lambda trong Python là hàm được định nghĩa không có tên data = [19, 21, 46, 29, 11] mappedList = map(lambda num: num * num, data) print(list(mappedList)) đầu ra[361, 441, 2116, 841, 121] Chúng ta không cần định nghĩa hàm trong ví dụ này vì lambda sẽ thực hiện công việc Liệt kê danh sách các chuỗiChúng ta có thể liệt kê danh sách các chuỗi bằng phương thức list() và map() data = ['grogu', 'dinjarin', 'ahsokatano'] mappedList = list(map(list, data)) print(list(mappedList)) đầu ra[['g', 'r', 'o', 'g', 'u'], ['d', 'i', 'n', 'd', ' ', 'j', 'a', 'r', 'i', 'n'], ['a', 'h', 's', 'o', 'k', 'a', ' ', 't', 'a', 'n', 'o']] Phần kết luậnHàm map() trong Python trả về đối tượng bản đồ mà bạn có thể chuyển đổi đối tượng đó thành danh sách, bộ dữ liệu, từ điển hoặc bộ. Ví dụ: bạn có thể sử dụng hàm lambda hoặc hàm thông thường trong hàm map() Hàm Ví dụ________số 8_______map() Cú phápCú pháp của nó là map(function, iterable, ...) bản đồ () Đối sốHàm Bạn có thể chuyển nhiều hơn một lần lặp cho hàm map() Giá trị trả vềHàm
ví dụ 1. Hoạt động của bản đồ ()
đầu ra {16, 1, 4, 9} Trong ví dụ trên, mỗi mục của bộ dữ liệu được bình phương Vì Hàm lambda là một hàm ngắn không có tên. Truy cập trang này để tìm hiểu thêm về Hàm lambda Python Bạn có thể ánh xạ danh sách Python không?Câu trả lời là, bạn có thể . Nhưng sử dụng Hàm ánh xạ Python giúp bạn tiết kiệm bộ nhớ (có nghĩa là mã của bạn chạy nhanh hơn) và yêu cầu ít mã hơn. Hãy xem qua một ví dụ để bạn có thể hiểu ý tôi.
Bản đồ có luôn trả về một danh sách không?map() luôn trả về một danh sách . Xem họ modify() để biết các phiên bản trả về một đối tượng cùng loại với đầu vào.
Bản đồ có nhanh hơn khả năng hiểu danh sách trong Python không?Hàm bản đồ nhanh hơn khả năng hiểu danh sách khi công thức đã được xác định là một hàm trước đó . Vì vậy, chức năng bản đồ đó được sử dụng mà không có biểu thức lambda.
Bản đồ có nhanh hơn vòng lặp for Python không?map() hoạt động nhanh hơn nhiều so với vòng lặp for . Xem xét mã tương tự ở trên khi chạy trong ý tưởng này. Sử dụng bản đồ(). |