On Mon, Apr 16, 2012 at 3:18 PM, Karl Knechtel <zahl...@gmail.com> wrote: > d = {k: list(v) for k, v in itertools.groupby(sorted(l, key=f), f)}
Note that the sorted call would fail if f returns objects of unorderable types: Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> f = lambda x: x >>> l = [object(), object()] >>> import itertools >>> d = {k: list(v) for k, v in itertools.groupby(sorted(l, key=f), f)} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: object() < object() Which is unfortunate since grouping in general should not need to depend on orderability. -- http://mail.python.org/mailman/listinfo/python-list