[Python-Dev] Getting values stored inside sets (original) (raw)

Amaury Forgeot d'Arc amauryfa at gmail.com
Fri Apr 3 18:07:29 CEST 2009


Hi,

On Fri, Apr 3, 2009 at 17:45, Sebastian Rittau <srittau at jroger.in-berlin.de> 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:  myel = first(myset, 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



More information about the Python-Dev mailing list