A way to re-organize a list
Gordon Airporte
JHoover at fbi.gov
Thu Jul 19 15:05:46 EDT 2007
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']
More information about the Python-list
mailing list