2016-04-26 2 views
2

wenn wir den folgenden Code:wie auf Iteratoren n-mal in Python nennen __next__

s = "stackoverflow" 
si = iter(s) 
si.__next__() # Would return s 
si.__next__() # Would return t 
si.__next__() # Would return a 

ist es eine Möglichkeit, ohne Loops kann ich "a" mit einem einzigen Anruf zu __next__() bekommen. also grundsätzlich möchte ich __next__() dreimal aufrufen und den dritten Wert bekommen. (Beachten Sie, dass ein Iterator verwendet werden muss, kann ich nicht nur schneiden verwenden)

Danke

Antwort

5

können Sie itertools.islice verwenden:

>>> from itertools import islice 
>>> si = iter(s) 
>>> next(islice(si, 2, 3)) 
'a'