2012-05-29 21 views
17

これはpyschoolsからの質問です。各文字の周波数を文字列で数える

私はそれを正しくしましたが、もっと簡単な方法があると思います。これはこれを行う最も簡単な方法ですか?

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

これは、次のようなものになります。2.7以降で

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

答えて

47

:以前

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

(2.5+、それが今では古代のです):

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

この操作の時間の複雑さはどのくらいですか? –

17
>>> import collections 
>>> print collections.Counter("google") 
Counter({'o': 2, 'g': 2, 'e': 1, 'l': 1}) 
関連する問題