Python ฟังก์ชัน enumerate(): วนลูป, ทูเปิล และสตริง

⚡ สรุปอย่างชาญฉลาด

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

  • 🔢 สิ่งที่มันไม่: เพิ่มตัวนับให้กับแต่ละรายการของออบเจ็กต์ที่วนซ้ำได้ โดยส่งคืนคู่ดัชนี-ค่า
  • ⚙️ ไวยากรณ์: enumerate(iterable, startIndex) รับออบเจ็กต์ที่สามารถวนซ้ำได้ (iterable) และหมายเลขเริ่มต้น (startindex) (ซึ่งเป็นตัวเลือก)
  • 🔟 เริ่มต้นแบบกำหนดเอง: startIndex กำหนดจุดเริ่มต้นการนับ หากต้องการเริ่มนับจาก 0 ให้ละเว้นค่านี้
  • 🔁 ห้องน้ำping: ใช้ร่วมกับลูป for เพื่ออ่านค่าดัชนีและค่าพร้อมกัน
  • 📦 วัตถุที่สามารถวนซ้ำได้ทุกชนิด: ใช้งานได้กับลิสต์ ทูเพิล สตริง และพจนานุกรม
  • 🤖 ความช่วยเหลือจาก AI: เครื่องมือ Copilot และ AI จะเติมข้อความอัตโนมัติให้กับลูป enumerate() และปรับปรุงตัวนับที่เขียนด้วยตนเอง

ฟังก์ชันแจกแจง () ใน Python

ความหมายของ Python แจกแจง?

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

ไวยากรณ์ของ Python การระบุ ()

enumerate(iterable, startIndex)

พารามิเตอร์

พารามิเตอร์สามตัว ได้แก่:

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

อย่างไรก็ตาม หากไม่ได้ระบุ startIndex การนับจะเริ่มต้นจาก 0

ค่าส่งคืน

มันจะส่งคืน iterableobject โดยมีค่า countvalue ให้กับแต่ละรายการไปยัง iteratorobject ที่กำหนดเป็นอินพุต

แจกแจง () ใน Python ตัวอย่าง

วิธีการแจงนับมาพร้อมกับตัวนับ/ดัชนีอัตโนมัติสำหรับแต่ละรายการที่อยู่ในรายการแจงนับ Python- ค่า firstindex จะเริ่มต้นจาก 0 คุณยังสามารถระบุ startindex ได้โดยใช้พารามิเตอร์ทางเลือก startIndex ในการแจงนับ
ตัวอย่าง
ในโค้ดด้านล่าง mylist คือรายการที่กำหนดให้กับฟังก์ชัน Enumerate Pythonส่วน ฟังก์ชันรายการ() ใช้เพื่อแสดงการแจงนับ Python เอาท์พุต

หมายเหตุ ไม่มีการใช้ startIndex ดังนั้นดัชนีสำหรับรายการแรกจะเริ่มต้นจาก 0

ผลลัพธ์จากการแจงนับจะมีลักษณะต่อไปนี้:

(0, item_1), (1, item_2), (2, item_3), … (n, item_n)

ไฟล์: python_enumerate.py

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist)
print(list(e_list))

Output:

[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]

การใช้Enumerate() ในรายการด้วย startIndex

ในตัวอย่างด้านล่าง ดัชนีเริ่มต้นที่กำหนดเป็น 2 ดัชนีของรายการแรกจะเริ่มต้นจากดัชนีเริ่มต้นที่กำหนด

ตัวอย่าง:

ในตัวอย่างด้านล่าง mylist คือรายการที่กำหนดเพื่อแจกแจง ฟังก์ชัน list() ใช้เพื่อแสดงผลการแจกแจง

mylist = ['A', 'B' ,'C', 'D']
e_list = enumerate(mylist,2)
print(list(e_list))

Output:

[(2, 'A'), (3, 'B'), (4, 'C'), (5, 'D')]

ห้องน้ำping เหนือวัตถุ Enumerate

ตัวอย่างแสดงการแจกแจงบนออบเจ็กต์ที่มีและไม่มี startIndex

  • for-loop แรกไม่มี startIndex ดังนั้นดัชนีจึงเริ่มต้นจาก 0
  • for-loop อันที่สองมี startIndex เป็น 10 ดังนั้นดัชนีจึงเริ่มจาก 10

ตัวอย่าง:

mylist = ['A', 'B' ,'C', 'D']

for i in enumerate(mylist):
  print(i)
  print("\n")

print("Using startIndex as 10")    

for i in enumerate(mylist, 10):
  print(i)
  print("\n")

Output:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')

Using startIndex as 10
(10, 'A')
(11, 'B')
(12, 'C')
(13, 'D')

แจงนับ Tuple

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

ตามค่าเริ่มต้น startIndex จะเป็น 0 ดังนั้นคุณจะเห็นคีย์เป็น 0 สำหรับรายการ A และ 1 สำหรับ B และอื่นๆ

ตัวอย่าง:

my_tuple = ("A", "B", "C", "D", "E")
for i in enumerate(my_tuple):
  print(i)

Output:

(0, 'A')
(1, 'B')
(2, 'C')
(3, 'D')
(4, 'E')

การแจงนับสตริง

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

ตัวอย่าง:

my_str = "Guru99 "
for i in enumerate(my_str):
  print(i)

Output:

(0, 'G')
(1, 'u')
(2, 'r')
(3, 'u')
(4, '9')
(5, '9')

แจกแจงพจนานุกรม

In Pythonพจนานุกรมจะอยู่ในวงเล็บปีกกา และค่าต่างๆ จะถูกประกาศไว้ภายในวงเล็บปีกกาเหล่านี้

แต่ละองค์ประกอบเป็นคู่คีย์/ค่า และคั่นด้วยเครื่องหมายจุลภาค คุณสามารถใช้พจนานุกรมภายใน enumerate() และดูผลลัพธ์ได้

my_dict = {"a": "PHP", "b":"JAVA", "c":"PYTHON", "d":"NODEJS"}
for i in enumerate(my_dict):
  print(i)

Output:

(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')

ข้อดีของการใช้แจงนับ

นี่คือข้อดี/ประโยชน์ของการใช้ Enumerate Python:

  • แจงนับช่วยให้คุณสามารถวนซ้ำรายการ สิ่งทูเพิล พจนานุกรม สตริง และให้ค่าพร้อมกับดัชนี
  • หากต้องการรับค่าดัชนีโดยใช้ for-loop คุณสามารถใช้ list.index(n) อย่างไรก็ตาม list.index(n) มีราคาแพงมากเนื่องจากจะข้าม for-loop สองครั้ง การแจงนับมีประโยชน์มากในกรณีนี้ เนื่องจากทำให้ดัชนีและรายการต่างๆ ในคราวเดียว

คำถามที่พบบ่อย

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

รูปแบบการใช้งานคือ enumerate(iterable, startIndex) โดย iterable คืออ็อบเจ็กต์ใดๆ ที่สามารถวนซ้ำได้ และ startIndex คือตัวเลขเริ่มต้นที่ไม่บังคับ หากไม่มีค่านี้ การนับจะเริ่มจาก 0

ส่งอาร์กิวเมนต์ตัวที่สองเข้าไป เช่น enumerate(mylist, 2) การนับจะเริ่มต้นจากค่าดังกล่าวแทนที่จะเป็น 0 ดังนั้นรายการแรกจะมีดัชนีเป็น 2

ใช่แล้ว การส่งค่าผ่านพจนานุกรมจะวนลูปไปตามคีย์ต่างๆ โดยจับคู่แต่ละคีย์กับดัชนี ส่วนการแจงนับรายการในพจนานุกรม (items()) นั้นจะทำเมื่อคุณต้องการค่าต่างๆ ด้วย

enumerate() นั้นสะอาดและเร็วกว่าการใช้ index หรือ list.index(n) ด้วยตนเอง ซึ่งจะสแกนสองครั้งและส่งคืน index และ item พร้อมกัน

ผู้ช่วย AI เช่น GitHub Copilot จะเติมข้อความอัตโนมัติสำหรับลูป enumerate() แนะนำ startIndex และปรับปรุงตัวนับที่เขียนด้วยตนเอง ทำให้การทำงานรวดเร็วขึ้น Python และการแก้ไขข้อผิดพลาดที่คลาดเคลื่อนไปหนึ่งตำแหน่ง

ใช่แล้ว ระบบตรวจสอบไวยากรณ์ที่ขับเคลื่อนด้วย AI จะทำการปรับปรุงโค้ดนี้โดยอัตโนมัติ โดยจะตรวจจับรูปแบบ range(len(x)) และเขียนใหม่เป็น enumerate(x) เพื่อให้โค้ดดูสะอาดตาและใช้งานง่ายขึ้น Pythonวงจรไอซีที่มีพฤติกรรมเหมือนกัน

enumerate() จะส่งคืนอ็อบเจ็กต์ enumerate ซึ่งเป็นตัววนซ้ำของคู่ (ดัชนี, ค่า) คุณสามารถวนลูปโดยตรงหรือใช้ list() ครอบไว้เพื่อดูคู่ทั้งหมดได้

สรุปโพสต์นี้ด้วย: