0 points
Submitted by Abuzz
over 9 years

So what exactly does enumerate do?

All of a sudden the for loop includes index, item.

Not sure what enumerate does or the comma in the for loop.

Answer 5087fc982389640200004962

44 votes


enumerate() is one of the built-in Python functions. It returns an enumerate object. In our case that object is a list of tuples (immutable lists), each containing a pair of count/index and value. Look at http://docs.python.org/library/functions.html?highlight=enumerate#enumerate

Try the following in the python labs (here we use another built-in function list([iterable]) which returns a list whose items are the same and in the same order as iterable‘s items).

>>> choices = ['pizza', 'pasta', 'salad', 'nachos']
>>> list(enumerate(choices))
=> [(0, 'pizza'), (1, 'pasta'), (2, 'salad'), (3, 'nachos')]

So, in the for index, item in enumerate(choices): expression index, item is the pair of count, value of each tuple: (0, 'pizza'), (1, 'pasta'), ...

We may easily change the start count/index with help of enumerate(sequence, start=0)

for index, item in enumerate(choices, start = 1):
    print index, item

or simply with a number as the second parameter

for index, item in enumerate(choices, 1):
    print index, item

in opposite to the lesson’s hint

for index, item in enumerate(choices):
    print index + 1, item
Submitted by Ivan Chernikov
over 9 years


Alex J over 9 years

Great explanation, Ivan! Did you know you can link to code examples in the Labs by clicking “share” in the upper right corner? See http://labs.codeacademy.com/4eL#:workspace

Abuzz over 9 years

Thanks!! Understand it much better now.

Ivan Chernikov over 9 years

@ Alex J. I see, I will be sharing code examples in the Labs then :-)

franchoo over 9 years

Genius! Ty

achillesc2 over 9 years

this is exactly what i needed - it was not explained at all. Thank you so much!

munderbrink almost 8 years

The lesson should be updated to better explain the enumerate.

j.sitruk almost 8 years

Thank you very much for the comment. It was true that seeing this ‘index, item’ pair was quite confusing. Thanks for the help!

Aditya Agnihotri almost 7 years

Thanks for explanation! Above mentioned details should be included in the tutorial.