Skip to content

Python enumerate() Function

How to use Python's enumerate() to loop through iterables with automatic indexing, customize starting values, and access index-value pairs efficiently.

The enumerate() function adds a counter to an iterable and returns it as an enumerate object (iterator with index and the value).

Syntax

enumerate(iterable, start)

enumerate() Parameters

Python enumerate() function parameters:

Parameter Condition Description
iterable Required An iterable (e.g. list, tuple, string, etc.)
start Optional A number to start counting from. Default value is 0.

enumerate() Return Value

Python enumerate() function adds a counter to an iterable and returns it: the returned object is an enumerate object.

An enumerate object is an iterator that produces a sequence of tuples, each containing an index and the value from the iterable.

You can convert enumerate objects to lists and tuples using list() and tuple() functions, respectively.

Examples

Basic Example with Python enumerate() function

Create a list that can be enumerated:

color_list = ['red', 'green', 'blue']
result = list(enumerate(color_list))
print(result)    # Output: [(0, 'red'), (1, 'green'), (2, 'blue')]

output

[(0, 'red'), (1, 'green'), (2, 'blue')]

You can change the default counter in enumerate() as you need by specifying the start argument:

color_list = ['red', 'green', 'blue']
result = list(enumerate(color_list, 10))
print(result)    # Output: [(10, 'red'), (11, 'green'), (12, 'blue')]

output

[(10, 'red'), (11, 'green'), (12, 'blue')]

Example: loop over an Enumerate Object

When you iterate an enumerate object, you get a tuple containing (counter, item)

color_list = ['red', 'green', 'blue']
for pair in enumerate(color_list):
    print(pair)

output

(0, 'red')
(1, 'green')
(2, 'blue')

However, you can unpack the tuple into multiple variables as well:

color_list = ['red', 'green', 'blue']
for index, item in enumerate(color_list):
    print(index, item)

output

0 red
1 green
2 blue

And you can also change the default counter and loop:

color_list = ['red', 'green', 'blue']
for index, item in enumerate(color_list, 10):
    print(index, item)

output

10 red
11 green
12 blue

Example: access the next element with next() function

color_list = ['red', 'green', 'blue']
enumerate_colors = enumerate(color_list)

next_element = next(enumerate_colors)
print(f"Next Element: {next_element}")

output

Next Element: (0, 'red')
Navigation