目录
7-1 词频统计
import sys
s = sys.stdin.read()
s = s[:s.find('#')] #读写所有内容,输入 ctrl+d 结束
for i in s: #将所有非字母、非数字、非下划线的字符均用空格替换
if i.isalnum() == False and i != '_':
s = s.replace(i, ' ')
words1 = s.lower().split(' ') #以空格分隔各个单词并存储它们的小写
words2 = {}
for i in words1:
if i == '': #上一步分隔后,可能存在分隔了两个空格存留的空字符,将其略过
continue
else:
i = i[:15] #保留所有单词的前十五位
words2[i] = words2.get(i, 0) + 1#如果字典中有这个键,则值加一,若没有,则创建一个并令值等于零
#将字典先按“值”倒序排列,大的在前,最大的数前面加个符号就变的最小,这样排得越前
#然后再按“键”排列,即相同数量时,按字母顺序排列
words3 = sorted(words2.items(), key=lambda x:(-x[1],x[0]))#-x[1]:将字典先按“值”倒序排列
print(len(words3))
num = int(len(wor