How to Use enumerate() to Print a Numbered List in Python

  • google plus

In Brief...

You have a list of items and want to print it out as a numbered list using Python.

Take our Introduction to Python Training course for free.

See the Course Outline and Register


Starting List

fruit = ['banana', 'apple', 'pear', 'peach']

Desired Output

  1. banana
  2. apple
  3. pear
  4. peach

In another programming language, you might create a variable called i or num and then loop through the list incrementing the variable value by 1 with each iteration.

In Python, you use enumerate():

fruit = ['banana', 'apple', 'pear', 'peach']
for i, item in enumerate(fruit,1):
    print(i, '. ' + item, sep='',end='')

How enumerate() Works

The enumerate(iterable, start) function will return a sequence of tuples. If we loop through that sequence normally like this, we get a tuple on each iteration:

for t in enumerate(iterable):
    print(t) #t is a tuple

But the syntax we showed above unpacks that tuple on each iteration, so:

for a, b in enumerate(iterable):
    print(a) #first value in the tuple (the count)
    print(b) #second value in the tuple (the item in the original iterable)

Author: Nat Dunn

Nat Dunn founded Webucator in 2003 to combine his passion for web development with his business expertise and to help companies benefit from both.