Proposed new collection methods
Jeff Schwab
jeffrey.schwab at rcn.com
Sun Aug 7 00:50:09 EDT 2005
Robert Kern wrote:
> (s for s in iter(self) is test(s)) is a generator expression. It is
> roughly equivalent to
>
> def g(self, test=lambda x: True):
> for s in iter(self):
> if test(s):
> yield s
>
> Now, if I were to do
>
> item = g(self, test).next()
>
> the generator would execute the code until it reached the yield
> statement which happens when it finds the first item that passes the
> test. That item will get returned, and execution does not return to the
> generator again.
>
> That implementation does indeed return as soon as it locates the first
> item, so yes, I was being retarded.
Wow, that's cool! Very reminiscent of C++ input iterators, but a lot
cleaner and shorter. Thanks.
More information about the Python-list
mailing list