用字符串计算每个字母的频率

时间:2012-05-29 21:19:32

标签: python dictionary

这是来自pyschools的问题。

我确实做对了,但我猜测会有一个更简单的方法。这是最简单的方法吗?

def countLetters(word):
    letterdict={}
    for letter in word:
        letterdict[letter] = 0
    for letter in word:
        letterdict[letter] += 1
    return letterdict

这应该是这样的:

>>> countLetters('google')
{'e': 1, 'g': 2, 'l': 1, 'o': 2}

2 个答案:

答案 0 :(得分:49)

在2.7 +:

import collections
letters = collections.Counter('google')

早些时候(2.5岁以上,现在很古老):

import collections
letters = collections.defaultdict(int)
for letter in word:
    letters[letter] += 1

答案 1 :(得分:16)

>>> import collections
>>> print collections.Counter("google")
Counter({'o': 2, 'g': 2, 'e': 1, 'l': 1})