注1:单词之间以空格(1个或多个空格)为间隔。
注2:忽略空行或者空格行。
统计时,区分字母大小写,且不删除指定标点符号。
统计前,需要从文字中删除指定标点符号!.,: *?。 注意:所谓的删除,就是用1个空格替换掉相应字符。
统计单词时需要忽略单词的大小写。
输入说明
若干行英文,最后以!!!为结束。
输出说明
单词数量
出现次数排名前10的单词(次数按照降序排序,如果次数相同,则按照键值的字母升序排序)及出现次数。
输入样例1
Failure is probably The fortification in your pole!
It is like a peek your wallet as the thief when You
are thinking how to. spend several hard-won lepta.
when yoU are? wondering whether new money it has laid
background Because of: yOu?, then at the heart of the
Tom say: Who is the best? No one dare to say yes.
most lax alert and! most low awareness and* left it
godsend failed
!!!!!
输出
54
the=5
is=3
it=3
you=3
and=2
are=2
most=2
of=2
say=2
to=2
代码
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 9 00:58:57 2020
@author: chen
"""
words=""
while True:
a=input()
if a=="!!!!!":
break
words=words+" "+a
words=words.lower()
words=words.replace('!',' ').replace(',',' ').replace('.',' ').replace(':',' ').replace('*',' ').replace('?',' ')
words=words.split()
s={}
for i in words:
if i in s:
s[i]+=1
else:
s[i]=1
s=list(s.items())
s.sort(reverse=False,key=lambda x:x[0])
s.sort(reverse=True,key=lambda x:x[1])
print(len(s))
if len(s)<10:
for i in range(len(s)):
word,count=s[i]
print(word+"="+str(count))
else:
for i in range(10):
word,count=s[i]
print(word+"="+str(count))