Hello,
On Fri, Apr 03, 2009 at 02:07:02PM +0200, Hrvoje Niksic wrote:
> But I can't seem to find a way to retrieve the element corresponding to
> 'foo', at least not without iterating over the entire set. Is this an
> oversight or an intentional feature? Or am I just missing an obvious
> way to do this?
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.
- Sebastian
_______________________________________________
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