Python
enumerate() and zip() — stop writing index-juggling loops
Two built-ins that replace fragile range(len(...)) loops and parallel indexing with clear, Pythonic iteration.
May 2026 · 5 min read · 1 views · 0 hearts
Reaching for range(len(items)) is usually a sign that enumerate() or zip() would read better and break less.
enumerate(): index + value together
When you need the position and the item, ask for both:
for i, name in enumerate(names, start=1):
print(f"{i}. {name}")zip(): walk two sequences at once
Pairing elements by position is what zip() is for. It stops at the shortest input, so you never index out of range:
for product, price in zip(products, prices):
print(product, price)Combine them
They compose cleanly — enumerate(zip(a, b)) gives you an index alongside each pair. Prefer these over manual counters; the intent is obvious and there is nothing to keep in sync.
Sponsored
Comments
Questions, corrections, and tips stay visible for everyone reading this page.
Join the discussion
No comments yet
Be the first to leave a note — it helps the next reader.