现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数。 注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 most 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

时间: 2024-03-23 22:36:39 浏览: 57
输入样例中的英文文本中包含多个空格,需要使用正则表达式或者字符串分割函数进行处理。同时需要注意将文本中的标点符号替换为空格,并将单词转换为小写形式后再进行统计。 基本版代码示例: ```python import re from collections import defaultdict # 初始化单词计数器 word_count = defaultdict(int) # 读取输入文本,直到遇到结尾标记 while True: line = input().strip() if line == "!!!!!": break # 将标点符号替换为空格,分割出单词并统计数量 line = re.sub(r'[!.,:*?。]', ' ', line) words = line.split() for word in words: word_count[word] += 1 # 输出单词数量 print(len(word_count)) # 输出出现次数排名前10的单词及出现次数 top10 = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))[:10] for word, count in top10: print(word, count) ``` 进阶版代码示例: ```python import re from collections import defaultdict # 初始化单词计数器 word_count = defaultdict(int) # 读取输入文本,直到遇到结尾标记 while True: line = input().strip() if line == "!!!!!": break # 将标点符号替换为空格,分割出单词并统计数量 line = re.sub(r'[!.,:*?。]', ' ', line) words = line.split() for word in words: word = word.lower() word_count[word] += 1 # 输出单词数量 print(len(word_count)) # 输出出现次数排名前10的单词及出现次数 top10 = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))[:10] for word, count in top10: print(word, count) ``` 注意,在进阶版代码中需要将单词转换为小写形式后再进行统计。

相关推荐

最新推荐

recommend-type

C语言统计一篇英文短文中单词的个数实例代码

本文通过实例代码给大家介绍的C语言统计一篇英文短文中单词的个数,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
recommend-type

将字符串中由空格隔开的每个单词首字母大写

主要介绍了如何将字符串中的每个单词的首字母变为大写,需要的朋友可以参考下
recommend-type

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板
recommend-type

wireshark安装教程入门

wireshark安装教程入门
recommend-type

基于C++负数据库的隐私保护在线医疗诊断系统

【作品名称】:基于C++负数据库的隐私保护在线医疗诊断系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于负数据库的隐私保护在线医疗诊断系统 NDBMedicalSystem 客户端及服务器端 本项目是在保护用户隐私的前提下,完成了对新冠肺炎、乳腺癌、眼疾等多种疾病的智能诊断。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。