计算字符串中所有字母的出现次数 (python)

Count occurrence of all letters in string (python)

我有一条消息:

message = """Nhpbz Qbspbz Jhlzhy dhz h Yvthu nlulyhs huk zahalzthu dov wshflk h jypapjhs yvsl pu aol lcluaz aoha slk av aol kltpzl vm aol Yvthu Ylwbispj huk aol ypzl vm aol Yvthu Ltwpyl.""" 

我想计算所有字母的出现次数(从 a 到 z)。我知道怎么做一个字母:

def count_letters(message, char):

    return sum(char == c for c in message)

print(count_letters(message, 'a'))

有没有一种方法可以对所有字母执行此操作而不必打印每个字母?

您可以使用 collections.Counter():

from collections import Counter
str_count = Counter(message)
print(str(str_count))

或者如果你想使用循环:

str_count = {}

for i in message:
    if i in str_count:
        str_count[i] += 1
    else:
        str_count[i] = 1

print(str(str_count)

更多 pythonic 方式:

str_count = {i : message.count(i) for i in set(message)}

print(str(str_count)