beginner wrote: > > What I want to do is to reorganize it in groups, first by the middle > element of the tuple, and then by the first element. I'd like the > output look like this:
itertools.groupby has already been mentioned, but it has a very specific and complex behavior which may not be exactly what you need. I found this handy class: class groupby(dict): def __init__(self, seq, key=lambda x:x): for value in seq: k = key(value) self.setdefault(k, []).append(value) __iter__ = dict.iteritems which you would use like this: byfirst = groupby(l, lambda x: x[0]) print byfirst['A'] print byfirst['B'] bysecond = groupby(l, lambda x: x[1]) print bysecond['a'] print bysecond['b'] -- http://mail.python.org/mailman/listinfo/python-list