计算字母出现的次数Python
问题内容:
我正在尝试计算字母的出现并打印出来。这是我到目前为止所拥有的:
def histogram(L):
d = {}
for x in L:
for letter in x:
if letter in d:
d[letter] += 1
else:
d[letter] = 1
for i in range(len(d)):
print('{} | {}'.format(d, d[i])) # GETTING ERRORS ON THIS LINE
return d
histogram(open('cipher.txt'))
由于某种原因,我在那条线上遇到了错误。我如何正确打印?
编辑:解决我的马丁!道具!但是有人知道如何按字母顺序对字典排序吗?
问题答案:
d
是 字典 ,而不是列表。循环键:
for key in d:
print('{} | {}'.format(key, d[key]))
否则您将获得KeyError
例外。
您可能对collections.Counter()
课堂感兴趣;
这是一本计数字典:
from collections import Counter
def histogram(L):
d = Counter(letter for line in L for letter in x)
for letter in d:
print('{} | {}'.format(letter, d[letter]))
return d