Hacker News new | ask | show | jobs
by LukeStebbing 5152 days ago
Or just say:

    from collections import Counter
    freqs = Counter("abracadabra")
I was surprised to see that missing, given that Counter was mentioned in the next section.
1 comments

Ah, Guido's time machine strikes again :)

Here's my (now mostly obsolete) version:

    def count(string):
        counts = {}
        for item in set(string):
            counts[item] = string.count(item)
        return counts
        
    print count("abracadabra")
I had a look into the collections library, and it just uses iterable.iteritems(). I suspect that this might be faster for larger strings with multiple repeating characters, since set() and count() will pass the string directly to C.