At 05:32 PM 1/15/05 +0100, Just van Rossum wrote: >Phillip J. Eby wrote: > > > >It's not at all clear to me that "sticky" behavior is the best > > >default behavior, even with implicit adoptation. Would anyone in > > >their right mind expect the following to return [0, 1, 2, 3, 4, 5] > > >instead of [0, 1, 2, 0, 1, 2]? > > > > > > >>> from itertools import * > > > >>> seq = range(10) > > > >>> list(chain(islice(seq, 3), islice(seq, 3))) > > > [0, 1, 2, 0, 1, 2] > > > >>> > > > > I don't understand why you think it would. What does islice have to > > do with adaptation? > >islice() takes an iterator, yet I give it a sequence. No, it takes an *iterable*, both practically and according to its documentation: >>> help(itertools.islice) Help on class islice in module itertools: class islice(__builtin__.object) | islice(iterable, [start,] stop [, step]) --> islice object | | ... [snip rest] If you think about the iterator and iterable protocols a bit, you'll see that normally the adaptation goes the *other* way: you can pass an iterator to something that expects an iterable, as long as it doesn't need reiterability.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4