Easiest way to include a stop parameter in enumerate python?

enumerate, indexing, iterator, python, python-2.7

Solution

for i, row in enumerate(myiterable[2:], start=2):
   if i>= limit: break
   ...

or

for i,row in itertools.takewhile(lambda (i,val):i < limit,enumerate(myiterable[2:],2)):

to rephrase the other suggestion (note that it will only work if your iterable is a sliceable object)

start,stop = 11,20
my_items = range(100)
for i,row in enumerate(my_items[start:stop],start):
      ....

Problem

Ss there a simple way to iterate over an iterable object that allows the specification of an end point, say -1, as well as the start point in enumerate. e.g. ``` for i, row in enumerate(myiterable, start=2): # will start indexing at 2 ``` So if my object has a length of 10, what is the simplest way to to get it to start iterating at index 2 and stop iterating at index 9? Alternatively, is there something from itertools that is more suitable for this. I am specifically interested in high performance methods. In addition, when the start option was introduced in 2.6, is there any reason why a stop option was not? Cheers

Original source