如何在python中对迭代器调用__next__ n次

Mrf*_*zzy 2 python iterator

如果我们有以下代码:

s = "stackoverflow"
si = iter(s)
si.__next__() # Would return s
si.__next__() # Would return t
si.__next__() # Would return a
Run Code Online (Sandbox Code Playgroud)

有没有使用循环的方法我可以"a"通过一次调用得到__next__().所以基本上我想打__next__()三次电话并获得第三个价值.(注意必须使用迭代器,我不能只使用切片)

谢谢

Ash*_*ary 5

你可以使用itertools.islice:

>>> from itertools import islice
>>> si = iter(s)
>>> next(islice(si, 2, 3))
'a'
Run Code Online (Sandbox Code Playgroud)