Skip to Content

Enumerate Dictionary In Python [Code Examples]

Previously I looked at how to use the enumerate() built-in function with a for loop to provide two variables when iterating through a list. In that article the enumerate() function provides both an index number and the element in each list by wrapping these together into a tuple.

But what happens when the enumerate() function is applied to a dictionary?

As done previously let’s inspect the output of the enumerated dictionary by printing its contents:

>>> my_dict = {'a': 100, 'b': 200, 'c': 300}
>>> list(enumerate(my_dict))
[(0, 'a'), (1, 'b'), (2, 'c')]

From the above output, you can easily conclude that the enumerate function exposes the key value of each element within a dictionary.

Knowing this would help if you wanted to loop through the dictionary using a for-loop.

By applying the same principle taught in the previous article on using a for loop with two variables you would define the first variable as the index and the second item as the key to the dictionary, like so:

>>> my_dict = {'a': 100, 'b': 200, 'c': 300}
>>> for idx, key in enumerate(my_dict):
...     print(idx, key, my_dict[key])
...
0 a 100
1 b 200
2 c 300

As you can see from the output above the enumerate function provides access to a tuple containing the index number and the key, should these both be needed when looping through your dictionary.

The equivalent of using the enumerate function would be to define your index variable outside the for loop and to increment the variable through each iteration of the dictionary’s keys, like so:

>>> my_dict = {'a': 100, 'b': 200, 'c': 300}
>>> idx = 0
>>> for key in my_dict:
...     print(idx, key, my_dict[key])
...     idx += 1
...
0 a 100
1 b 200
2 c 300

The idx += 1 part in the code above representing the way to increment in Python the variable idx by one each time the for loop passes through a key in the dictionary.

Summary

The enumerate function can be used on a dictionary in Python and when combined with the two-variable for loop can provide a way to access an index number as well as the key when iterating through a Python dictionary.