7-35 jmu-Java&Python-统计文字中的单词数量并按出现次数排序

分数 25

全屏浏览题目切换布局

作者 郑如滨

单位 集美大学

现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数

注1:单词之间以空格(1个或多个空格)为间隔。 注2:忽略空行或者空格行。

基本版: 统计时,区分字母大小写,且不删除指定标点符号。

进阶版:

  1. 统计前,需要从文字中删除指定标点符号!.,:*?。 注意:所谓的删除,就是用1个空格替换掉相应字符。

  2. 统计单词时需要忽略单词的大小写。

输入说明

若干行英文,最后以!!!!!为结束。

输出说明

单词数量 出现次数排名前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 leptawhen you are wondering whether new money it has laid
background because of you then at the heart of themost lax alert and most low awareness and left it
​
godsend failed
!!!!!

输出样例1

46
the=4
it=3
you=3
and=2
are=2
is=2
most=2
of=2
when=2
your=2

输入样例2

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
!!!!!

输出样例2

54
the=5
is=3
it=3
you=3
and=2
are=2
most=2
of=2
say=2
to=2

思路:

1、这个题首先在于输入:
python的输入是一行一行输入的,所以这里需要判断什么时候输入结束 我们使用while input!=“!!!!!”;
其次,输入需要去除一些特殊符号“!.,:*?”,需要每次输入后去符号为空格‘ ’;
这里还需要进行一个去多空格的操作,我们可以采取用新链表储存返回的方式,如果不是‘’空,则append到这个新列表中;
最后还有一个去大写为小写的操作,我们可以使用.lower()函数。、
2、这里需要统计字符个数,我采取用字典储存的方式,这样很方便统计:
依次取出处理完的列表list的元素,对其初始化到一个字典中去,使用字典的setdefault(key,value)函数;
再判断当前元素是否在这个字典中,如果在,则该字典的value+=1
3、对字典排序,这里的排序规则是对value降序同时key升序。
我采取的操作是用匿名函数和排序函数:
sorted(dict,key = lamdba x:(-x[1],x[0])) #这里的-x[1]表示对字典中的value降序,x[0]表示对字典中的key升序
4、输出

代码:

# ----------输入-----------
# 处理多个空格
m = ''
​
​
def check(list):new_list = []for i in list:if i != '':new_list.append(i)return new_list
​
​
removechar = "!.,:*?"
res = []
while m != "!!!!!":m = input()if len(m) == 0:pass# 去除!.,:*?elif m != "!!!!!":for char in removechar:m = m.replace(char , '')# 去除空格,做列表m = m.split()m = check(m)for i in m:res.append(i.lower())else:pass
# --------------------------
​
dic_res = {}
for i in res:dic_res.setdefault(i,0)if i in dic_res:dic_res[i]+=1
print(len(dic_res))
lll=sorted(dic_res.items() , key = lambda x: (-x[1],x[0]) )
count=0
for i in lll:if count==10:breakprint(f"{i[0]}={i[1]}")count+=1
​
​
​
# k={'a':1,'b':2}
# print(k['a'])

7-35 jmu-JavaPython-统计文字中的单词数量并按出现次数排序相关推荐

  1. PTA12、 统计文字中的单词数量并按出现次数排序 (10 分)

    12. 统计文字中的单词数量并按出现次数排序 (10 分) 现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行 ...

  2. python统计单词出现次数并排序_7-4 jmu-JavaPython-统计文字中的单词数量并按出现次数排序 (25分)...

    现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行或者空格行. 基本版: 统计时,区分字母大小写,且不删除指定 ...

  3. 7-1 jmu-JavaPython-统计文字中的单词数量并按出现次数排序 (25 分)

    现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行或者空格行. 基本版: 统计时,区分字母大小写,且不删除指定 ...

  4. 7-3 jmu-JavaPython-统计文字中的单词数量并按出现次数排序

    现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行或者空格行. 基本版: 统计时,区分字母大小写,且不删除指定 ...

  5. 7-30 jmu-JavaPython-统计一段文字中的单词个数并按单词的字母顺序排序后输出 (25 分)

    7-30 jmu-Java&Python-统计一段文字中的单词个数并按单词的字母顺序排序后输出 (25 分) 现需要统计若干段文字(英文)中的不同单词数量. 如果不同的单词数量不超过10个,则 ...

  6. 7-1 jmu-JavaPython-统计一段文字中的单词个数并按单词的字母顺序排序后输出

    7-1 jmu-Java&Python-统计一段文字中的单词个数并按单词的字母顺序排序后输出 (15 分) 现需要统计若干段文字(英文)中的不同单词数量. 如果不同的单词数量不超过10个,则将 ...

  7. Python实现统计文本中各单词数量

    Python实现统计文本中各单词数量 代码 运行结果 代码 import strings = 'not talk,not helo show me your code hello helo' for ...

  8. 统计一段文字中的单词个数并按单词的字母顺序排序后输出

    现需要统计若干段文字(英文)中的不同单词数量. 如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行或 ...

  9. PTA(每日一题)7-1 jmu-JavaPython-统计一段文字中的单词个数并按单词的字母顺序排序后输出

    现需要统计若干段文字(英文)中的不同单词数量. 如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词. **注1:**单词之间以空格(1个或多个空格)为间隔. **注2 ...

最新文章

  1. 【计算机视觉】EmguCV学习笔记(4)分离颜色通道以及多通道图像混合
  2. kcf跟踪算法实例整理
  3. saltstack/salt的state.sls的使用
  4. Vim配置IDE开发环境
  5. 寻找两个有序数组中的中位数
  6. mysql修改表分界符号_mysql---触发器
  7. 超级好用的画图吸色工具FastSton Capture
  8. 程序员大保健指南,给自己的身心偶尔放松的机会
  9. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(6):音频
  10. bzoj 1260 (区间dp)
  11. 数据线性拟合优化之路
  12. 游戏挂机还开着电脑?那就真的out了!
  13. android游戏开发教程 android游戏项目教程
  14. 【pytest】(六) pytest中fixture的使用
  15. 微信拍一拍怎么撤回(无法撤回原因是这样的)
  16. 从安卓recovery 的 backup 备份数据中手动恢复 通讯录、短信,或者其他软件中的信息的方法
  17. 计算机截图工具无法运行,win10系统打开截图工具提示“截图工具当前未在计算机上运行”的解决办法...
  18. 北京社保卡和医疗存折(萌新看)
  19. xxljob从入门到精通-全网段最全解说
  20. 如何查询土地规划用途_“土地调查云”——一款可以详细查询土地征收相关信息的“神器”!...

热门文章

  1. 用Python对微信好友进行分析
  2. 30天早起感悟——我为什么要早起
  3. 响应式设计的未来是什么?
  4. Springboot毕设项目风云网吧管理系统57g27(java+VUE+Mybatis+Maven+Mysql)
  5. testdisk-强大的磁盘恢复工具
  6. 二叉树--二叉搜索树
  7. python与erp_Python-EEG处理和事件相关电位(ERP)
  8. jsonObject.toJSONString() VS jsonObject.toString()
  9. 常见鸟的种类及特点_常见鸟的种类有哪些
  10. 江苏计算机一级2017年真题,2017年9月江苏计算机一级考试试题