เมื่อใช้ฟังก์ชัน enumerate() ของ Python คุณจะได้รับหมายเลขดัชนี (การนับ ลำดับ) รวมถึงองค์ประกอบของอ็อบเจกต์แบบ iterable เช่น list หรือ tuple ในลูป for
บทความนี้อธิบายพื้นฐานของฟังก์ชัน enumerate()
- ฟังก์ชันรับดัชนีใน for loop:
enumerate()
- ปกติสำหรับลูป
- สำหรับการวนซ้ำโดยใช้ฟังก์ชัน enumerate()
- เริ่มดัชนีของฟังก์ชัน enumerate() ที่ 1 (ค่าที่ไม่ใช่ศูนย์)
- ระบุการเพิ่มขึ้น (ขั้นตอน)
ฟังก์ชัน enumerate() สามารถใช้เพื่อรับดัชนีในลูป for
ปกติสำหรับลูป
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
สำหรับการวนซ้ำโดยใช้ฟังก์ชัน enumerate()
ระบุวัตถุ iterable เช่น list เป็นอาร์กิวเมนต์ของฟังก์ชัน enumerate()
คุณสามารถรับหมายเลขดัชนีและองค์ประกอบในลำดับนั้นได้
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
เริ่มดัชนีของฟังก์ชัน enumerate() ที่ 1 (ค่าที่ไม่ใช่ศูนย์)
ตามที่แสดงในตัวอย่างข้างต้น โดยค่าเริ่มต้น ดัชนีของฟังก์ชัน enumerate() จะเริ่มต้นจาก 0
หากคุณต้องการเริ่มต้นด้วยตัวเลขอื่นที่ไม่ใช่ 0 ให้ระบุหมายเลขเริ่มต้นตามอำเภอใจเป็นอาร์กิวเมนต์ที่สองของฟังก์ชัน enumerate()
ในการเริ่มต้นจากศูนย์ ให้ทำดังต่อไปนี้
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
แน่นอน คุณสามารถเริ่มต้นด้วยตัวเลขอื่นได้
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
มีประโยชน์เมื่อคุณต้องการสร้างสตริงที่มีตัวเลขตามลำดับ การระบุหมายเลขเริ่มต้นเป็นอาร์กิวเมนต์ที่สองของฟังก์ชัน enumerate() นั้นฉลาดกว่าการใช้ ‘i+1’ เพื่อเริ่มต้นจาก 1
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
ดูบทความต่อไปนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันการจัดรูปแบบ ซึ่งใช้ในการเติมตัวเลขด้วยศูนย์
- บทความที่เกี่ยวข้อง:แสดงผลค่าศูนย์ที่เติม เลขฐานสิบหก ฯลฯ ด้วยฟังก์ชันรูปแบบ () ของ Python
ระบุการเพิ่มขึ้น (ขั้นตอน)
ไม่มีอาร์กิวเมนต์ที่จะระบุขั้นตอนที่เพิ่มขึ้นในฟังก์ชัน enumerate() แต่สามารถทำได้โดยทำดังต่อไปนี้
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie