Hi,
On Fri, Apr 3, 2009 at 17:45, Sebastian Rittau
<[email protected]> wrote:
> I am missing a simple way to retrieve the "first" element of any
> iterable in python that matches a certain condition anyway. Something
> like this:
>
> def first(iter, cb):
> for el in iter:
> if cb(el):
> return el
> raise IndexError()
>
> Or (shorter, but potentially slower):
>
> def first(iter, cb):
> return [el for el in iter if cb(el)][0]
>
> To be used like this:
>
> my_el = first(my_set, lambda el: el == "foobar")
>
> This is something I need from time to time and this also seems to solve
> your problem.
def first(iter, cb):
return itertools.ifilter(cb, iter).next()
--
Amaury Forgeot d'Arc
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com