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 に答える