On 22 Jan 2009, at 12:42 , Nick Coghlan wrote:
Tino Wildenhain wrote:
g=(i for i in xrange(1000))[2:5]
g.next() # wrapper would now step 2 times w/o yield and 1 with yield
2
g.next()
3
g.next()
4
g.next()
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
StopIteration

as expected - this could be included into itertools for now.

Slicing of arbitrary iterators has been supported by itertools ever
since the module was first added to the standard library.


islice is pretty annoying in some aspects, though. Mainly because it doesn't accept kwargs and defaults to requiring the stop argument. So drop(iterable, n) has to be written islice(iterable, n, None) (and of course the naming isn't ideal), and you can't really use functools.partial since the iterator is the first argument (unless there's a way to partially apply only the tail args without kwargs).
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to