เมื่อทำงานกับลิสต์ มักต้องการดัชนี (Index) และค่า (Value) พร้อมกัน มีหลายวิธี
วิธีที่ 1: ใช้ list.index()
หาดัชนีของค่าเฉพาะเจาะจง
listA = [11, 45, 27, 8, 43]
print("Index of 45:", listA.index(45))
listB = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
print("Index of Wed:", listB.index('Wed'))
ผลลัพธ์
Index of 45: 1 Index of Wed: 3
วิธีที่ 2: ใช้ range และ len
วนลูปดัชนี แล้วเข้าถึงค่าผ่านดัชนี
listA = [11, 45, 27, 8, 43]
print("Given list:", listA)
print("Index and Values:")
print([list((i, listA[i])) for i in range(len(listA))])
ผลลัพธ์
Given list: [11, 45, 27, 8, 43] Index and Values: [[0, 11], [1, 45], [2, 27], [3, 8], [4, 43]]
วิธีที่ 3: ใช้ enumerate() (แนะนำ)
enumerate() คืนค่า (index, value) ทีละคู่ ใช้ใน for loop ได้โดยตรง
listA = [11, 45, 27, 8, 43]
print("Given list:", listA)
print("Index and Values:")
for index, value in enumerate(listA):
print(index, value)
ผลลัพธ์
Given list: [11, 45, 27, 8, 43] Index and Values: 0 11 1 45 2 27 3 8 4 43
ตัวเลือกเพิ่มเติม: enumerate(listA, start=1) เริ่มนับจาก 1 แทน 0
สรุป: enumerate() เป็นวิธีที่ดีที่สุดสำหรับการวนลูปพร้อมดัชนี เนื่องจากเขียนสั้น อ่านง่าย และมีประสิทธิภาพ