Reputation: 3591
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
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
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