Map() trả về gì trong Python?

Python cung cấp một số tiện ích lập trình chức năng mặc dù nó chủ yếu là ngôn ngữ lập trình hướng đối tượng. Và đáng chú ý nhất là hàm map[]

Trong bài viết này, chúng ta sẽ khám phá hàm

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 là gì và cách sử dụng nó trong mã của bạn

Hàm map[] trong Python

Hàm

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 [là một hàm tích hợp trong Python] được sử dụng để áp dụng một hàm cho từng mục trong một lần lặp [như danh sách Python hoặc từ điển]. Nó trả về một iterable mới [một đối tượng bản đồ] mà bạn có thể sử dụng trong các phần khác của mã của mình

Cú pháp chung cho việc này là

map[function, iterable, [iterable1, iterable2, ...]]

Hãy xem một ví dụ. hãy tưởng tượng bạn có một danh sách các số và bạn muốn tạo một danh sách mới với các khối của các số trong danh sách đầu tiên. Một cách tiếp cận truyền thống sẽ liên quan đến việc sử dụng vòng lặp for

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]

điều này hoàn toàn hợp lệ, nhưng hãy xem cách sử dụng hàm

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 để đơn giản hóa mã của bạn

org_list = [1, 2, 3, 4, 5]

# define a function that returns the cube of `num`
def cube[num]:
    return num**3
   
fin_list = list[map[cube, org_list]]
print[fin_list] # [1, 8, 27, 64, 125]

Không biết về bạn, nhưng tôi thấy điều này hợp lý hơn nhiều

Trong trường hợp bạn đang thắc mắc điều gì đã xảy ra đằng sau hậu trường, thì hàm
org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 về cơ bản được lặp qua từng phần tử của iterable [trong trường hợp của chúng tôi là
org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
0] và áp dụng hàm cube trên đó. Cuối cùng, nó đã trả về một lần lặp mới [
org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 ] với kết quả

Cách sử dụng biểu thức Lambda trong Python

Thay vì viết một hàm riêng để tính lập phương của một số, chúng ta có thể sử dụng biểu thức lambda thay cho nó. Đây là cách bạn muốn làm điều đó

fin_list = list[map[lambda x:x**3, org_list]]
print[fin_list] # [1, 8, 27, 64, 125]

Sạch sẽ hơn nhiều, bạn có đồng ý không?

Cách sử dụng các hàm tích hợp trong Python

Bạn cũng có thể chuyển vào các hàm Python tích hợp. Ví dụ: nếu bạn có một danh sách các chuỗi, bạn có thể dễ dàng tạo một danh sách mới với độ dài của mỗi chuỗi trong danh sách

org_list = ["Hello", "world", "freecodecamp"]
fin_list = list[map[len, org_list]]
print[fin_list] # [5, 5, 12]

Cách sử dụng hàm với nhiều lần lặp trong Python

Cho đến giờ chúng ta đã chuyển sang hàm

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 chỉ nhận một đối số [nhớ lại hàm
org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
3]. Nhưng nếu hàm của bạn có nhiều đối số thì sao?

Để áp dụng một hàm có nhiều đối số, chỉ cần chuyển một tên có thể lặp lại khác sau tên đầu tiên

base = [1, 2, 3, 4]
power = [1, 2, 3, 4]

result = list[map[pow, base, power]]
print[result] # [1, 4, 27, 256]
Kết thúc

Trong bài viết này, bạn đã học cách làm việc với hàm

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 trong Python. Bạn cũng đã thấy cách nó có thể giảm đáng kể kích thước mã của bạn, giúp mã dễ đọc hơn và không có lỗi

Giờ đây, bạn có thể thoải mái làm việc với

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1 bằng cách sử dụng các hàm tích hợp sẵn, biểu thức lambda và thậm chí cả hàm tùy chỉnh của riêng bạn

Hãy nhớ theo dõi tôi trên Twitter để cập nhật các bài viết trong tương lai. chúc bạn vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Jason Dsouza

Nhà nghiên cứu AI @Harvard, Giáo viên @freeCodeCamp. Trình biên dịch bán thời gian Warlock

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Bản đồ Python[] áp dụng một hàm trên tất cả các mục của trình vòng lặp được cung cấp làm đầu vào. Ví dụ, một iterator có thể là một danh sách, một tuple, 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 chức năng tích hợp

Trong hướng dẫn này, bạn sẽ học

cú pháp

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
0

Thông số

Đây là hai điều quan trọng

  • chức năng. Một chức năng bắt buộc được cung cấp cho bản đồ, chức năng này sẽ được áp dụng cho tất cả các mục có sẵn trong trình vòng lặp
  • trình vòng lặp. 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 tuple, v.v. Bạn có thể chuyển nhiều đối tượng lặp vào hàm map[]

Giá trị trả về

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 i. một 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 lại đã cho

Ví dụ: giả sử 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ố

Để có được đầu ra, chúng ta cần hàm trả về bình phương của một số đã cho. Chức năng sẽ như sau

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
1

Danh sách các mục mà chúng tôi muốn tìm hình vuông như sau

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
2

Bây giờ, chúng ta hãy sử dụng hàm tích hợp map[] của python để lấy bình phương của từng mục trong my_list

Mã cuối cùng như sau

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
3

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
4

The output of the map[] function, as seen in the output, is a map object displayed on the screen as .

Bạn sẽ phải lặp lại đầu ra từ bản đồ bằng vòng lặp for hoặc sử dụng phương thức list[] để có được đầu ra 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ể lấy bình phương của mỗi số. Danh sách được cung cấp cho map 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,

Hàm map[] áp dụng hàm square[] 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ố. Out đượ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 của 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 có sẵn round[] của Python để làm tròn các giá trị đã cho

Ví 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ị được làm tròn cho từng mục có trong danh sách. Chúng ta sẽ sử dụng round[] làm hàm map[]

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
5

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
6

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ư thể hiện ở đầu ra

Sử dụng map[] với một chuỗi làm trình vòng lặp

Chúng ta cũng có thể sử dụng map[] trên một chuỗi. Trong Python, string đóng vai trò như một mảng nên chúng ta có thể dễ dàng sử dụng nó bên trong map[]

Trong ví dụ này, chúng ta có một hàm myMapFunc[] đảm nhiệm việc chuyển đổi chuỗi đã cho thành chữ hoa. Hàm myMapFunc[] được gán cho hàm map[]. Hàm map sẽ đảm nhiệm việc chuyển đổi chuỗi đã cho thành chữ hoa bằng cách chuyển chuỗi tới myMapFunc[]

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
7

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
8

Sử dụng map[] với danh sách các số

Để 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[] đảm nhiệm việc nhân số đã cho với 10. Chức năng được đưa ra để ánh xạ cùng với danh sách

Ví dụ

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
9

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
10

Kết quả chúng ta 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ụ này, chúng ta sẽ lấy một bộ có 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

Ví dụ

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
11

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
12

Đầu ra chúng tôi nhận được là một tuple back với tất cả các giá trị trong đó được chuyển đổi thành chữ hoa

Sử dụng map[] với Dictionary

Một từ điển trong Python được tạo bằng cách sử dụng dấu ngoặc nhọn [{}]. Vì từ điển là một trình vòng 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 từ điển làm 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 lặp từ điển bên trong map[]

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
13

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
14

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 iterator, nên bạn có thể sử dụng nó bên trong hàm map[]

Đây là một ví dụ hoạt động về việc sử dụng set làm trình vòng lặp bên trong map[]

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
15

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
16

Sử dụng map[] với chức năng 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ư khi bạn sử dụng def để xác định các chức năng thông thường

Vì vậy, trong ví dụ này, chúng ta sẽ sử dụng hàm lambda bên trong map[]. Hàm lambda sẽ nhân từng giá trị trong danh sách với 10

Ví dụ

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
17

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
18

Sử dụng nhiều Iterator bên trong hàm map[]

ví dụ 1. Chuyể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 iterator i. e. một danh sách, một bộ dữ liệu, v.v. tất cả cùng một lúc vào hàm map[]

Ví dụ, nếu bạn muốn thêm hai danh sách. Điều tương tự cũng có thể được thực hiện bằng hàm map[]. Chúng tôi sẽ sử dụng hai danh sách my_list1 và my_list2

Trong ví dụ bên dưới, 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[] lấy các mục của my_list1 và my_list2 và trả về tổng của cả hai

Dưới đây là ví dụ hoạt động về việc thêm hai danh sách đã cho bằng hàm map[]

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
19

đầu ra

org_list = [1, 2, 3, 4, 5]
fin_list = []

for num in org_list:
    fin_list.append[num**3]

print[fin_list] # [1, 8, 27, 64, 125]
20

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 bộ lặp tuple trong hàm map[]. Chức năng được cung 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 dấu gạch dưới [_]. Ví dụ làm việc như hình dưới đây

Cái gì được trả về bởi bản đồ?

Phương thức map[] trả về một mảng hoàn toàn mới với các phần tử đã chuyển đổi và cùng một lượng dữ liệu . Trong trường hợp forEach[] , ngay cả khi nó trả về undefined , nó sẽ thay đổi mảng ban đầu bằng lệnh gọi lại.

Mục đích của bản đồ trong Python là gì?

Bản đồ trong Python là một hàm hoạt động như một trình vòng lặp để trả về kết quả sau khi áp dụng một hàm cho mọi mục của một vòng lặp [bộ . ]. Nó được sử dụng khi bạn muốn áp dụng một hàm chuyển đổi duy nhất cho tất cả các phần tử có thể lặp lại. Hàm lặp và hàm được truyền dưới dạng đối số cho bản đồ trong Python.

Chức năng bản đồ trong Python với ví dụ là gì?

Hàm map[] [là hàm tích hợp sẵn trong Python] được sử dụng để áp dụng một hàm cho từng mục trong một lần lặp [chẳng hạn như danh sách hoặc từ điển Python] . Nó trả về một iterable mới [một đối tượng bản đồ] mà bạn có thể sử dụng trong các phần khác của mã của mình. . It returns a new iterable [a map object] that you can use in other parts of your code.

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

Bản đồ. trả về một mảng các mẩu thông tin từ mảng ban đầu. Trong hàm gọi lại, trả về dữ liệu bạn muốn là một phần của mảng mới. Lọc. trả về một tập hợp con của mảng ban đầu dựa trên tiêu chí tùy chỉnh

Chủ Đề