2009/11/6 Raymond Hettinger <pyt...@rcn.com>: > [me] >> >> Why not write a short, fast get_first() function for your utils directory >> and be done with it? >> That could work with sets, mappings, generators, and other containers and >> iterators. >> No need to fatten the set/frozenset API for something so trivial and so >> rarely needed. > > Forgot to post the code. It is short, fast, and easy. It is explicit about > handing the case with an empty input. And it is specific about which value > it returns (always the first iterated value; not an arbitrary one). There's > no guessing about what it does. It gets the job done. > > def first(iterable): > 'Return the first value from a container or iterable. If empty, raises > LookupError' > for value in iterable: > return value > raise LookupError('no first value; iterable is empty') > > If desired, it is not hard to change to the last time to return a default > value or some other exception.
That function is very nice and genericly lisp-like. Couldn't that one be in the builtins? It would both solve the problem and avoid fattening the set API. -- mvh Björn _______________________________________________ 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