เมื่อใช้ iterator ต้องการนับจำนวนไอเท็ม ใช้เมธอด built-in enumerate() ซึ่งเพิ่มตัวนับ (counter) ให้กับ iterable คืนค่าเป็น enumerate object
enumerate(iterable, start=0)
# iterable - sequence, iterator, หรืออ็อบเจกต์ที่รองรับ iteration
# start - ตำแหน่งเริ่มต้นของการนับ (default 0)
ตัวอย่างพื้นฐาน
ใช้กับเซต (set) ของวัน ดัชนีเริ่มต้นที่ 0 สามารถเปลี่ยน start เป็น 5 ได้
days = {'Mon', 'Tue', 'Wed', 'Thu'}
enum_days = enumerate(days)
print(type(enum_days))
print(list(enum_days))
enum_days = enumerate(days, 5)
print(list(enum_days))
ผลลัพธ์
[(0, 'Tue'), (1, 'Thu'), (2, 'Mon'), (3, 'Wed')]
[(5, 'Tue'), (6, 'Thu'), (7, 'Mon'), (8, 'Wed')]
ใช้กับ Loop
วนลูปพร้อมแยกค่า counter และ element
days = {'Mon', 'Tue', 'Wed', 'Thu'}
enum_days = enumerate(days)
for enum_days in enumerate(days):
print(enum_days)
for count, enum_days in enumerate(days, 5):
print(count, enum_days)
ผลลัพธ์
(0, 'Thu')
(1, 'Tue')
(2, 'Wed')
(3, 'Mon')
5 Thu
6 Tue
7 Wed
8 Mon