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 Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com