编写一个名为letter_count(filename)的函数,该函数接受包含文件名的单个参数。您的函数应该读取文本文件的内容,并计算每个英文字母在文件中出现的次数。该函数应将(字符:计数)对列表打印到标准输出。
您可以根据需要定义其他“帮助”功能。任何不是英文字母的字符都应该被忽略。这个案子应该被忽略(因此'a'和'A'都算作字母'a')。使用小写字母报告输出。字母应按标准字母顺序排序,并应以格式字母打印,然后是空格,然后是冒号,然后是空格,然后是频率。
我努力将结果与图像相同,我应该只获得字母并忽略其他值。但是,我只能忽略数字。以下是我最喜欢的地方:
def letter_count(filename):
f = open(filename, 'r')
content = f.read().lower()
data = content.split()
mydicts = {}
for letter in data:
for i in letter:
count = mydicts.get(i, 0)
mydicts[i] = count + 1
mydicts_list = mydicts.keys()
for letter in sorted(mydicts_list):
print(letter, ':', mydicts[letter])
答案 0 :(得分:0)
你可以使用collections.Counter
为你做计数工作:
import string
from collections import Counter
with open(filename) as f:
char_counts = Counter(c for c in f.read().lower() if c in string.ascii_lowercase)
for c in sorted(char_counts):
print(c, char_counts[c])