[EMAIL PROTECTED] wrote: > What am I doing wrong here? > >>>> import operator >>>> import itertools >>>> vals = [(1, 11), (2, 12), (3, 13), (4, 14), (5, 15), > ... (1, 16), (2, 17), (3, 18), (4, 19), (5, 20)] >>>> for k, g in itertools.groupby(iter(vals), operator.itemgetter(0)): > ... print k, [i for i in g] > ... > 1 [(1, 11)] > 2 [(2, 12)] > 3 [(3, 13)] > 4 [(4, 14)] > 5 [(5, 15)] > 1 [(1, 16)] > 2 [(2, 17)] > 3 [(3, 18)] > 4 [(4, 19)] > 5 [(5, 20)] > > What I want is tuples starting with identical numbers to be grouped. I > cannot figure out why this is not working. If anyone has any insights, > I would appreciate it.
itertools only looks for changes to the key value (the one returned by operator.itemgetter(0) in your case); it doesn't sort the list for you. this should work: for k, g in itertools.groupby(sorted(vals), operator.itemgetter(0)): print k, [i for i in g] </F> -- http://mail.python.org/mailman/listinfo/python-list