十堰网站建设是什么,微信开放平台文档,交易平台网站建设,上海最近三天的新闻请编写程序#xff0c;对一段英文文本#xff0c;统计其中所有不同单词的个数#xff0c;以及词频最大的前10%的单词。
输入格式: 输入给出一段非空文本#xff0c;最后以符号#结尾。输入保证存在至少10个不同的单词。
输出格式: 在第一行中输出文本中所有不同单词的个数… 请编写程序对一段英文文本统计其中所有不同单词的个数以及词频最大的前10%的单词。
输入格式: 输入给出一段非空文本最后以符号#结尾。输入保证存在至少10个不同的单词。
输出格式: 在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写。随后按照词频递减的顺序按照 词频:单词 的格式输出词频最大的前10%的单词。若有并列则按递增字典序输出。
输入样例
This is a test.The word this is the word with the highest frequency.Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee. But this_8 is different than this, and this, and this...#
this line should be ignored.输出样例
23
5:this
4:is
注意虽然单词the也出现了4次但因为我们只要输出前10%即23个单词中的前2个单词而按照字母序the排第3位所以不输出。
代码示例 :
#定义临时文本段落
text
#定义文本统计字典
text_dic {}
#多行输入
while True:#定义临时缓存并整理buffer input().replace(.,).replace(,).replace(,,).lower()if buffer:text buffer if buffer[-1] #:text text.replace(#, )print(text,text)breakelse:continue
#剪切临时文本存入字典
for x in text.split( ):if x :continueif x not in text_dic:text_dic[x] 1else:text_dic[x] 1
#从大到小值排序
sorted_dict {k: v for k, v in sorted(text_dic.items(), keylambda item: item[1],reverse True)}
#文本前百分之十
top_10_percent sum(sorted_dict.values()) * 0.1
top_10_percent_count 0
#定义词的种数
words 0
for x in sorted_dict:words 1if top_10_percent_count top_10_percent:top_10_percent_count sorted_dict[x]print(f{sorted_dict[x]}:{x})
print(words)以上代码全为本人亲自手敲可能有一些错误和不足之处如有更好的方法和建议欢迎您在评论区友善讨论。