需要在python中获取迭代器的其余部分

Gou*_*ham 3 python iterator

说我有一个迭代器.
迭代迭代器的几个项后,我将不得不摆脱这些前几个项并返回一个迭代器(最好是相同的)与其余的项.我该怎么办?此外,Do迭代器是否支持删除或弹出操作(如列表)?

Unk*_*own 7

是的,只需使用iter.next()

iter = xrange(3).__iter__()

iter.next() # this pops 0

for i in iter:
  print i

1
2
Run Code Online (Sandbox Code Playgroud)

您可以使用.next()弹出迭代器的前面.你不能做任何其他奇特的操作.

  • Python 2.6及更高版本中的"官方"推荐方式是next(iter),而不是iter.next()[继续在2.6中工作,但不在3.*]中工作.使用next(x),您可以提供一个默认值作为第二个参数,以避免在迭代器耗尽时获得StopIteration异常. (9认同)

小智 7

itertools.dropwhile()功能也可能有用:

dropwhile(lambda x: x<5, xrange(10))
Run Code Online (Sandbox Code Playgroud)