把每个字母的频率串起来

2024-05-19 14:01:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 方法inforreturndefgooglewordletter
2条回答
>>> import collections
>>> print collections.Counter("google")
Counter({'o': 2, 'g': 2, 'e': 1, 'l': 1})

在2.7+中:

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

早期(2.5+,现在已经很古老了):

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

相关问题 更多 >