[Python-Dev] function for counting items in a sequence
Steven Bethard
steven.bethard at gmail.com
Sat Apr 7 23:53:08 CEST 2007
Alex Martelli wrote:
> Steven Bethard <steven.bethard at gmail.com> wrote:
>
>> Alex Martelli wrote:
>> > If we had a "turn sequence into bag" function somewhere
>> > (and it might be worth having it for other reasons):
>> >
>> > def bagit(seq):
>> > import collections
>> > d = collections.defaultdict(int)
>> > for x in seq: d[x] += 1
>> > return d
>>
>> I use this function all the time -- I call it dicttools.count(). I'd
>> love to see this appear in the collections module or somewhere else in
>> the stdlib.
>
> Maybe you should propose it in python-dev -- it does seem a reasonable
> utility addition to the collections module, after all.
Here's a patch implementing collections.counts() as suggested above:
http://bugs.python.org/1696199
Example usage, from the docstring::
>>> items = 'acabbacba'
>>> item_counts = counts(items)
>>> for item in 'abcd':
... print item, item_counts[item]
...
a 4
b 3
c 2
d 0
The documentation is a little terse, but the function was so simple, I
wasn't really sure what more to say.
STeVe
More information about the Python-Dev
mailing list