[Tutor] iterating over less than a full list
Steven D'Aprano
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
> etc...
>
> 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.
import itertools
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
first.
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].
--
Steven D'Aprano
More information about the Tutor
mailing list