>>> from itertools import groupby
>>> from operator import itemgetter
>>> l = [('a',1),('b',2),('a',2)]
>>> dict((k,[n for l,n in v]) for k,v in groupby(sorted(l),itemgetter(0)))
{'a': [1, 2], 'b': [2]}
Not sure if the order of the collapsed values matters, so you can edit sorted(l)tosorted(l,key=itemgetter(0))
source
share