[Tutor] iterating over less than a full list
steve at pearwood.info
Sat Sep 4 20:45:08 CEST 2010
On Sun, 5 Sep 2010 03:14:24 am Bill Allen wrote:
> Say I have and iterable called some_stuff which is thousands of items
> in length and I am looping thru it as such:
> for x in some_stuff
> However, what if I want only to iterate through only the first ten
> items of some_stuff, for testing purposes. Is there a concise way of
> specifying that in the for statement line?
The Pythonic way is to use itertools.islice.
for x in itertools.islice(some_stuff, 10):
blah blah blah
will stop at the end of some_stuff, or after 10 items, whichever happens
islice() optionally takes the full set of arguments that ordinary list
slicing takes, so that islice(iterable, start, end, stride) is nearly
the same as list(iterable)[start:end:stride].
More information about the Tutor