Python's enumerate
function is an awesome tool that allows us to create a counter alongside values we're iterating over: as part of a loop, for example.
enumerate
takes an iterable type as its first positional argument, such as a list, a string, or a set, and returns an enumerate object containing a number of tuples: one for each item in the iterable. Each tuple contains an integer counter, and a value from the iterable.
enumerate
also takes an optional additional parameter called start
, which can be provided as either a keyword or positional argument. If no start value is provided, enumerate
begins counting from zero, making it a perfect tool for tracking the index of each item.
The most common place to find enumerate
being used is within something like a for loop, with the tuples inside the enumerate object destructured into two separate loop variables.
friends = ["Rolf", "John", "Anna"]
for counter, friend in enumerate(friends, start=1):
print(counter, friend)
# 1 Rolf
# 2 John
# 3 Anna
The use of enumerate
is not limited to just for loops, however; we can also make use of enumerate
as part of a list comprehension, for example, or even passed in as an argument to dict
.
friends = ["Rolf", "John", "Anna"]
friends_dict = dict(enumerate(friends)) # {0: 'Rolf', 1: 'John', 2: 'Anna'}
Wrapping up
If you're interested in learning more cool tricks like this, check out our Complete Python Course, or come join us on our Discord server. We'd love to have you!
There's also a form down below for signing up to our mailing list. If you like what we do, it's a great way to stay up to date with all our content, and we also share discount codes for our courses with our subscribers, ensuring they always get the best deals on our courses.