Python ฟังก์ชัน map() พร้อมตัวอย่าง

Python map() ใช้ฟังก์ชันกับรายการทั้งหมดของตัววนซ้ำที่กำหนดเป็นอินพุต ตัวอย่างเช่น ตัววนซ้ำสามารถเป็นรายการ ทูเพิล ชุด พจนานุกรม สตริง และส่งคืนออบเจ็กต์แผนที่ที่สามารถทำซ้ำได้ Python map() เป็นฟังก์ชันในตัว

วากยสัมพันธ์

map(function, iterator1,iterator2 ...iteratorN)

พารามิเตอร์

นี่คือสองสิ่งสำคัญ

  • ฟังก์ชั่น: ฟังก์ชั่นบังคับที่จะมอบให้กับแผนที่ ซึ่งจะนำไปใช้กับรายการทั้งหมดที่มีอยู่ในตัววนซ้ำ
  • ตัววนซ้ำ: วัตถุบังคับที่สามารถทำซ้ำได้ อาจเป็นรายการ ทูเพิล ฯลฯ คุณสามารถส่งออบเจ็กต์ตัววนซ้ำหลายรายการไปยังฟังก์ชัน map()

ราคาย้อนกลับ

ฟังก์ชัน map() จะใช้ฟังก์ชันที่กำหนดกับรายการทั้งหมดภายในตัววนซ้ำ และส่งคืนออบเจ็กต์แผนที่ที่ทำซ้ำได้ เช่น ทูเพิล รายการ ฯลฯ

ฟังก์ชั่น map() ทำงานอย่างไร?

ฟังก์ชัน map() รับอินพุตสองตัวเป็นฟังก์ชันและวัตถุที่ทำซ้ำได้ ฟังก์ชันที่กำหนดให้ map() เป็นฟังก์ชันปกติ และจะวนซ้ำค่าทั้งหมดที่มีอยู่ในวัตถุที่ทำซ้ำได้

ตัวอย่างเช่น พิจารณาว่าคุณมีรายการตัวเลข และคุณต้องการหากำลังสองของตัวเลขแต่ละตัว

เพื่อให้ได้ผลลัพธ์ เราต้องการฟังก์ชันที่จะคืนค่ากำลังสองของตัวเลขที่กำหนด ฟังก์ชั่นจะเป็นดังนี้:

def square(n):
	return n*n

รายการสิ่งของที่เราต้องการค้นหาสี่เหลี่ยมมีดังนี้:

my_list = [2,3,4,5,6,7,8,9]

ตอนนี้ให้เราใช้ฟังก์ชันในตัว map() python เพื่อหากำลังสองของแต่ละรายการใน my_list

รหัสสุดท้ายมีดังนี้:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

Output:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

ผลลัพธ์ของฟังก์ชัน map() ตามที่เห็นในผลลัพธ์คือวัตถุแผนที่ที่แสดงบนหน้าจอเป็น -

คุณจะต้องวนซ้ำเอาต์พุตจากแผนที่โดยใช้เมธอด for-loop หรือใช้ list() เพื่อรับเอาต์พุตสุดท้าย ฉันใช้ list() ในโค้ดที่แสดงค่าภายในรายการที่กำหนด

ดังนั้นการใช้ฟังก์ชัน map() เราจึงสามารถหาค่ากำลังสองของแต่ละตัวเลขได้ รายการที่กำหนดให้กับแผนที่คือ [2,3,4,5,6,7,8,9] และใช้ฟังก์ชัน square() เอาต์พุต จาก map() ที่เราได้รับคือ [4, 9, 16, 25, 36, 49, 64, 81]

function map() ใช้ฟังก์ชัน square() กับรายการทั้งหมดในรายการ ตัวอย่างเช่น ตัวแปร my_list และอัพเดตรายการด้วยกำลังสองของแต่ละตัวเลข ข้อมูลออกจะถูกเก็บไว้ในตัวแปร updated_list

การใช้ map() กับ Python ฟังก์ชั่นในตัว

Python ฟังก์ชัน map() เป็นฟังก์ชันในตัวและยังสามารถใช้ร่วมกับฟังก์ชันในตัวอื่นๆ ได้ด้วย Python- ในตัวอย่างนี้เราจะใช้ Python round() ฟังก์ชันในตัวที่ปัดเศษค่าที่กำหนด

ตัวอย่าง:

รายการที่ฉันมีคือ my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]

ฉันต้องการค่าที่ปัดเศษสำหรับแต่ละรายการที่อยู่ในรายการ เราจะใช้ round() เป็นฟังก์ชันในการ map()

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))

Output:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

ฟังก์ชัน round() ใช้กับรายการทั้งหมดในรายการ และส่งคืนรายการโดยมีค่าทั้งหมดปัดเศษตามที่แสดงในเอาต์พุต

การใช้ map() กับสตริงเป็นตัววนซ้ำ

เรายังสามารถใช้ map() กับสตริงได้อีกด้วย ใน Pythonสตริงทำหน้าที่เหมือนอาร์เรย์ดังนั้นเราจึงสามารถใช้มันภายใน map() ได้อย่างง่ายดาย

ในตัวอย่าง เรามีฟังก์ชัน myMapFunc() ที่ดูแลการแปลงสตริงที่กำหนดเป็นตัวพิมพ์ใหญ่ ฟังก์ชัน myMapFunc () ถูกกำหนดให้กับฟังก์ชัน map() ฟังก์ชัน map จะดูแลการแปลงสตริงที่กำหนดเป็นตัวพิมพ์ใหญ่โดยส่งสตริงไปที่ myMapFunc()

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="")

Output:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

การใช้ map() กับ listof Numbers

ในการทำงานกับรายการใน map() จะต้องนำรายการตัวเลขมาคูณแต่ละตัวในรายการด้วย 10

รายชื่อที่เราจะใช้คือ : [2,3,4,5,6,7,8,9]. ฟังก์ชัน myMapFunc () ดูแลการคูณตัวเลขที่กำหนดด้วย 10 ฟังก์ชันนี้ถูกกำหนดให้กับแผนที่พร้อมกับรายการ

ตัวอย่าง:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

Output:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

ผลลัพธ์ที่เราเห็นคือแต่ละหมายเลขในรายการคือ

คูณด้วย 10

การใช้ map() กับ Tuple

สิ่งอันดับเป็นวัตถุใน Python ซึ่งมีรายการคั่นด้วยเครื่องหมายจุลภาคและอยู่ในวงเล็บกลม ในตัวอย่างนี้ เราจะใช้ทูเพิลที่มีค่าเป็นสตริง ฟังก์ชันที่เราจะใช้จะแปลงค่าที่กำหนดให้เป็นตัวพิมพ์ใหญ่

ตัวอย่าง:

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))

Output:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

ผลลัพธ์ที่เราได้รับคือ tuple back โดยค่าทั้งหมดในนั้นจะถูกแปลงเป็นตัวพิมพ์ใหญ่

การใช้ map() กับพจนานุกรม

A พจนานุกรมใน Python สร้างขึ้นโดยใช้เครื่องหมายวงเล็บปีกกา ({}) เนื่องจากพจนานุกรมเป็นอิเทอเรเตอร์ คุณจึงสามารถใช้งานพจนานุกรมภายในฟังก์ชัน map() ได้ ตอนนี้เราลองใช้พจนานุกรมเป็นตัวอิเทอเรเตอร์ภายในฟังก์ชัน map() กัน

ตัวอย่างต่อไปนี้แสดงการทำงานของตัววนซ้ำของพจนานุกรมภายใน map()

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

Output:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

การใช้ map() กับ Set

ที่ตั้งอยู่ใน Python เป็นชุดของรายการที่ไม่ได้เรียงลำดับในวงเล็บปีกกา (()) เนื่องจาก set() เป็นตัววนซ้ำด้วย คุณจึงสามารถใช้งานมันภายในฟังก์ชัน map() ได้

นี่คือตัวอย่างการทำงานของการใช้ set เป็นตัววนซ้ำภายใน map()

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

Output:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

การใช้ map() กับฟังก์ชัน Lambda

In Pythonนิพจน์แลมบ์ดาถูกนำมาใช้เพื่อสร้างฟังก์ชันที่ไม่ระบุชื่อ คุณจะต้องใช้คีย์เวิร์ด lambda เช่นเดียวกับที่คุณใช้ def เพื่อกำหนดฟังก์ชันปกติ

ในตัวอย่างนี้ เราจะใช้ฟังก์ชัน lambda ภายใน map() ฟังก์ชัน lambda จะคูณแต่ละค่าในรายการด้วย 10

ตัวอย่าง:

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))

Output:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

การใช้ตัววนซ้ำหลายตัวภายในฟังก์ชัน map()

ตัวอย่างที่ 1: การส่งผ่านตัววนซ้ำสองรายการไปยัง map()

คุณสามารถส่งตัววนซ้ำได้มากกว่าหนึ่งตัว เช่น รายการ ทูเพิล ฯลฯ ทั้งหมดนี้ไปยังฟังก์ชัน map() ในเวลาเดียวกัน

ตัวอย่างเช่น หากคุณต้องการเพิ่มสองรายการ เช่นเดียวกันสามารถทำได้โดยใช้ฟังก์ชัน map() เราจะใช้สองรายการ my_list1 และ my_list2

ในตัวอย่างด้านล่าง รายการแรกใน my_list1 จะถูกเพิ่มเข้ากับรายการแรกของ my_list2 ฟังก์ชัน myMapFunc() รับไอเท็มของ my_list1 และ my_list2 และส่งคืนผลรวมของทั้งสองรายการ

นี่คือตัวอย่างการทำงานของการเพิ่มสองรายการที่กำหนดโดยใช้ฟังก์ชัน map()

def myMapFunc(list1, list2):
    return list1+list2

my_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))

Output:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

ตัวอย่างที่ 2: การส่งผ่านหนึ่ง Tuple และตัววนซ้ำรายการไปยัง map()

เราจะใช้ list และ tuple iterator ในฟังก์ชัน map() ฟังก์ชั่นนี้ถูกกำหนดให้กับ map – myMapFunc() จะได้รับไอเท็มจากรายการและ Tuple รายการจะเข้าร่วมด้วยเครื่องหมายขีดล่าง (_) ตัวอย่างการทำงานดังแสดงด้านล่าง:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_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))

Output:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

สรุป

  • Python map() เป็นฟังก์ชันในตัวที่ใช้ฟังก์ชันกับรายการทั้งหมดของตัววนซ้ำที่กำหนดเป็นอินพุต ตัวอย่างเช่น ตัววนซ้ำอาจเป็นรายการ ทูเพิล สตริง ฯลฯ และส่งคืนออบเจ็กต์แผนที่ที่ทำซ้ำได้
  • ฟังก์ชัน map() จะใช้ฟังก์ชันที่กำหนดกับรายการทั้งหมดภายในตัววนซ้ำ และส่งคืนออบเจ็กต์แผนที่ที่ทำซ้ำได้ เช่น ทูเพิล รายการ ฯลฯ
  • Python ฟังก์ชัน map() เป็นฟังก์ชันในตัวและยังสามารถใช้ร่วมกับฟังก์ชันในตัวอื่นๆ ได้ด้วย Python.
  • สิ่งอันดับเป็นวัตถุใน Python ซึ่งมีรายการคั่นด้วยเครื่องหมายจุลภาคและอยู่ในวงเล็บกลม ในตัวอย่างจะใช้ทูเพิลที่มีค่าเป็นสตริง ฟังก์ชันที่เราจะใช้จะแปลงค่าที่กำหนดให้เป็นตัวพิมพ์ใหญ่
  • พจนานุกรมใน Python ถูกสร้างขึ้นโดยใช้เครื่องหมายวงเล็บปีกกา ({}) เนื่องจากพจนานุกรมเป็นตัววนซ้ำ คุณจึงสามารถใช้งานพจนานุกรมนี้ภายในฟังก์ชัน map() ได้
  • ที่ตั้งอยู่ใน Python เป็นชุดของรายการที่ไม่ได้เรียงลำดับในวงเล็บปีกกา (()) เนื่องจาก set() เป็นตัววนซ้ำด้วย คุณจึงสามารถใช้งานมันภายในฟังก์ชัน map() ได้
  • In Pythonนิพจน์แลมบ์ดา (หรือรูปแบบแลมบ์ดา) ถูกนำมาใช้เพื่อสร้างฟังก์ชันที่ไม่ระบุชื่อ ดังนั้น คีย์เวิร์ด lambda จะต้องใช้เมื่อคุณต้องการใช้ lambda ภายใน map()
  • คุณสามารถส่งตัววนซ้ำได้มากกว่าหนึ่งตัว เช่น รายการ ทูเพิลไปยังฟังก์ชัน map()