Python:枚举的片段

时间:2014-04-18 17:40:49

标签: python list slice

我想在一个列表中迭代。 另外,我想知道迭代下元素的索引。

我想做点像

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

唉,它说,'enumerate' object has no attribute '__getitem__'

我怎样才能以大多数pythonic的方式获得它?

2 个答案:

答案 0 :(得分:9)

您可以使用islice

from itertools import islice

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

答案 1 :(得分:7)

enumerate返回一个迭代器,它不支持基于索引的访问。但是,您可以先对原始列表进行切片,然后从enumerate开始使用不同的索引:

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