有一种简单的方法可以迭代一个可迭代对象,它允许指定终点,比如 -1,以及枚举中的起点。例如
for i, row in enumerate(myiterable, start=2): # will start indexing at 2
因此,如果我的对象的长度为 10,让它在索引 2 处开始迭代并在索引 9 处停止迭代的最简单方法是什么?
或者,是否有来自 itertools 的东西更适合这个。我对高性能方法特别感兴趣。
另外,2.6引入启动选项的时候,为什么没有停止选项呢?
干杯
for i, row in enumerate(myiterable[2:], start=2):
if i>= limit: break
...
或
for i,row in itertools.takewhile(lambda (i,val):i < limit,enumerate(myiterable[2:],2)):
改写其他建议(请注意,它仅在您的可迭代对象是可切片对象时才有效)
start,stop = 11,20
my_items = range(100)
for i,row in enumerate(my_items[start:stop],start):
....
我是一名优秀的程序员,十分优秀!