views:

229

answers:

2

In a Python for loop that iterates over a list we can write:

for item in list:
    print item

and it neatly goes through all the elements in the list. Is there a way to know within the loop how many times I've been looping so far? For instance, I want to take a list and after I've processed ten elements I want to do something with them.

The alternatives I thought about would be something like:

count=0
for item in list:
    print item
    count +=1
    if count % 10 == 0:
        print 'did ten'

Or:

for count in range(0,len(list)):
    print list[count]
    if count % 10 == 0:
        print 'did ten'

Is there a better way (just like the for item in list) to get the number of iterations so far?

+18  A: 

The pythonic way is to use enumerate:

for idx,item in enumerate(list):
Nick Bastin
so much to learn about python.
Martlark
A: 

Did you take a look at itertools.count([n])?

Andrew