19

这是 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}
4

2 回答 2

49

在 2.7+ 中:

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

早些时候(2.5+,现在很古老):

import collections
letters = collections.defaultdict(int)
for letter in word:
    letters[letter] += 1
于 2012-05-29T21:24:16.047 回答
16
>>> import collections
>>> print collections.Counter("google")
Counter({'o': 2, 'g': 2, 'e': 1, 'l': 1})
于 2012-05-29T21:22:58.687 回答