Steve R. Hastings wrote: > You could also use a function that counts all different values in a list, > reducing the list to a dictionary whose keys are the unique values from > the list. I got the idea from a discussion here on comp.lang.python; I > called my version of it tally(). > > d = tally(bool(x) for x in seq) > print d[True] # prints how many true values in seq > print d[False] # prints how many false values in seq > > > tally() is in my iterwrap.py module, which you can get here: > > http://home.blarg.net/~steveha/iterwrap.tar.gz >
>>> from itertools import groupby >>> tally = lambda it : dict((x,sum(1 for _ in y)) for x,y in >>> groupby(sorted(it))) >>> tally('abbcabbcca') {'a': 3, 'c': 3, 'b': 4} -- http://mail.python.org/mailman/listinfo/python-list