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