问题
案例:统计字母出现的频率
文件对象有iter、next方法,所以它是一个可迭代对象,可以用for循环遍历。我们可以遍历文件获得每一行字符,再遍历每一行,获得每个字符,将字符放入列表,然后统计每个字符出现的频率。
以统计文件中字符的频率为例,可以通用到其他应用中去。
解决代码
from collections import Counter
my_list = []
punctuation=',.!?\,。!?、()【】<>《》=:+-*“”...\n'
with open('bacon.txt','r') as f:
for line in f:
for word in line:
if word not in punctuation:
my_list.append(word)
counter = Counter(my_list)
print(counter)
输出案例:
Counter({'H': 1,
'e': 4,
'l': 4,
'o': 4,
' ': 5,
'w': 1,
'r': 1,
'd': 1,
'B': 1,
'a': 3,
'c': 1,
'n': 2,
'i': 1,
's': 1,
't': 2,
'v': 1,
'g': 1,
'b': 1})
参考文献
- https://github.com/datawhalechina/team-learning-program/tree/master/OfficeAutomation