Hello, there is an example how to use groupby in the itertools documentation (http://docs.python.org/lib/itertools-example.html):
# Show a dictionary sorted and grouped by value >>> from operator import itemgetter >>> d = dict(a=1, b=2, c=1, d=2, e=1, f=2, g=3) >>> di = sorted(d.iteritems(), key=itemgetter(1)) >>> for k, g in groupby(di, key=itemgetter(1)): ... print k, map(itemgetter(0), g) ... 1 ['a', 'c', 'e'] 2 ['b', 'd', 'f'] 3 ['g'] Now i wonder why itemgetter is used in this example. More straightforward is: >>> d = dict(a=1, b=2, c=1, d=2, e=1, f=2, g=3) >>> di = sorted(d.iterkeys(), key=d.get) >>> for k, g in groupby(di, key=d.get): ... print k, list(g) ... 1 ['a', 'c', 'e'] 2 ['b', 'd', 'f'] 3 ['g'] This code does not need the operator module, and its also faster (tested using timeit). Why was the, imho, more complicated version used as example in the documentation? Regards, Roman -- http://mail.python.org/mailman/listinfo/python-list