0
0
PythonHow-ToBeginner · 3 min read

How to Use For Loop with Index in Python: Simple Guide

In Python, you can use a for loop with an index by using the enumerate() function, which gives you both the index and the item from a list or other iterable. This lets you write for index, value in enumerate(iterable): to access each element and its position easily.
📐

Syntax

The basic syntax to use a for loop with an index in Python is:

for index, value in enumerate(iterable):
    # your code here

Here, enumerate() returns pairs of (index, value) for each item in the iterable. The index starts at 0 by default.

python
for index, value in enumerate(iterable):
    # code block
💻

Example

This example shows how to loop over a list of fruits and print each fruit with its index.

python
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")
Output
Index 0: apple Index 1: banana Index 2: cherry
⚠️

Common Pitfalls

One common mistake is trying to get the index by calling list.index() inside the loop, which is inefficient and can cause errors if items repeat.

Another is forgetting that enumerate() starts counting at 0 by default, which might be confusing if you want to start at 1.

python
items = ['a', 'b', 'a']

# Wrong way: using list.index() inside loop
for item in items:
    print(f"Index: {items.index(item)}, Item: {item}")

# Right way: using enumerate()
for index, item in enumerate(items):
    print(f"Index: {index}, Item: {item}")
Output
Index: 0, Item: a Index: 1, Item: b Index: 0, Item: a Index: 0, Item: a Index: 1, Item: b Index: 2, Item: a
📊

Quick Reference

Tips for using for loops with index in Python:

  • Use enumerate(iterable, start=1) to start counting from 1 instead of 0.
  • Use index, value unpacking to access both index and item.
  • Avoid using list.index() inside loops for indexes.

Key Takeaways

Use enumerate() to get index and value in a for loop easily.
The index from enumerate() starts at 0 by default but can start at any number.
Avoid using list.index() inside loops to find indexes; it is inefficient and error-prone.
Unpack the tuple from enumerate() as for index, value in enumerate(iterable):.
You can customize the starting index by passing the start parameter to enumerate().