Felix
Felix

Reputation: 3591

Python: slices of enumerate

I want to iterate within a slice of a list. Also, I want to know the indexes of the element under my iteration.

I want to make something like

for i, elm in enumerate(test_list)[7:40]:
    print i, elm
    #i must start with 7

Alas, it says, that 'enumerate' object has no attribute '__getitem__'

How can I get it in most pythonic way?

Upvotes: 7

Views: 7830

Answers (2)

roippi
roippi

Reputation: 25974

You can use islice:

from itertools import islice

for i,elm in islice(enumerate(some_list),7,40):
    print i,elm

Upvotes: 14

poke
poke

Reputation: 388023

enumerate returns an iterator, which does not support index-based access. You can however slice the original list first, and just start at a different index with enumerate:

for i, elm in enumerate(test_list[7:40], 7):
    print i, elm

Upvotes: 16

Related Questions