计算字符串中所有字母的出现次数 (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)
我有一条消息:
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)