Robert Johns | 10 Feb, 2025
Fact checked by Jim Markus

Python enumerate() Function | Docs With Examples

The Python enumerate() function is a powerful tool for working with iterable objects like lists and tuples.

It simplifies the process of accessing both the index and the value of items during loops, making your Python code cleaner and more readable. This built-in function combines behavior, flexibility, and simplicity, making it a must-know for Python developers

Basic Syntax

The enumerate() function has the following syntax:

enumerate(iterable, start=0)

- iterable (required): The collection (e.g., list, tuple, string) to be enumerated.
- start (optional): The starting index for the enumeration. Defaults to 0.

Common Examples

Here are some common use cases for enumerate():

1. Basic Usage

Get both the index and the value while iterating over an iterable object like a list:

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(index, fruit)

Output:

0 apple
1 banana
2 cherry

2. Custom Starting Index

You can change the starting index using the start parameter, showcasing the flexibility of this function:

for index, fruit in enumerate(fruits, start=1):
    print(index, fruit)

Output:

1 apple
2 banana
3 cherry

3. Using enumerate() in a List Comprehension

The enumerate() function can be used in a list comprehension to create more compact and readable code:

indexed_fruits = [f"{index}: {fruit}" for index, fruit in enumerate(fruits)]
print(indexed_fruits)

Output:

['0: apple', '1: banana', '2: cherry']

When to Use enumerate()

The enumerate() function is perfect for situations where you need both the index value and the item value during loops. It’s cleaner and more Pythonic than manually maintaining an index variable. By returning an enumerate object, this function allows you to iterate seamlessly over any iterable object.

Key Takeaways

  • The enumerate() function adds indices to your iterations effortlessly.
  • The start parameter lets you control the starting index, adding extra flexibility.
  • It works with any iterable object, including lists, tuples, and strings, making it extremely versatile for many Python projects.
  • Using enumerate() enhances the simplicity and readability of your Python loops.

Practice Exercise

Here's an interesting problem, why not try using enumerate() to iterate over a list of names, starting the index at 100:

names = ["Alice", "Bob", "Charlie"]
for index, name in enumerate(names, start=100):
    print(index, name)

Wrapping Up

The enumerate() function is a versatile tool that enhances iteration by adding indices to your data. Whether you're working with lists, tuples, or strings, this function simplifies your loops and makes them more Pythonic. By leveraging the behavior and flexibility of this built-in function, you can write cleaner and more efficient code. Happy coding!

By Robert Johns

Technical Editor for Hackr.io | 15+ Years in Python, Java, SQL, C++, C#, JavaScript, Ruby, PHP, .NET, MATLAB, HTML & CSS, and more... 10+ Years in Networking, Cloud, APIs, Linux | 5+ Years in Data Science | 2x PhDs in Structural & Blast Engineering

View all post by the author

Subscribe to our Newsletter for Articles, News, & Jobs.

I accept the Terms and Conditions.

Disclosure: Hackr.io is supported by its audience. When you purchase through links on our site, we may earn an affiliate commission.

In this article

Learn More

Please login to leave comments