pythonic way to iterate over part of a list
Question: I want to iterate over everything in a list except the first few elements,
e.g.:

    
    
    for line in lines[2:]:
        foo(line)
    

This is concise, but copies the whole list, which is unnecessary. I could do:

    
    
    del lines[0:2]
    for line in lines:
        foo(line)
    

But this modifies the list, which isn't always good.

I can do this:

    
    
    for i in xrange(2, len(lines)):
        line = lines[i]
        foo(line)
    

But, that's just gross.

Better might be this:

    
    
    for i,line in enumerate(lines):
        if i < 2: continue
        foo(line)
    

But it isn't quite as obvious as the very first example.

So: What's a way to do it that is as obvious as the first example, but doesn't
copy the list unnecessarily?


Answer: You can try [`itertools.islice(iterable[, start], stop[,
step])`](http://docs.python.org/library/itertools.html#itertools.islice):

    
    
    import itertools
    for line in itertools.islice(list , start, stop):
         foo(line)
    

