[Python-Dev] Getting values stored inside sets (original) (raw)
Sebastian Rittau srittau at jroger.in-berlin.de
Fri Apr 3 17:45:42 CEST 2009
- Previous message: [Python-Dev] Getting values stored inside sets
- Next message: [Python-Dev] Getting values stored inside sets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] Getting values stored inside sets
- Next message: [Python-Dev] Getting values stored inside sets
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]