一、题目
请统计附件hamlet.txt中出现的英文单词情况,统计并输出出现最多的10个单词,注意:
(1)单词不区分大小写,即单词的大小写或组合形式一样;
(2)请在文本中剔除如下特殊符号: !"#$%&()*+,- /:;<=>?@[]^. _'{}~;
(3)输出10个单词,每个单词-行;
(4)输出单词为小写形式。
二、题目分析
这道题首先可以通过read函数将文件中所有内容读取出来然后通过lower函数将他们全都转化为小写字母。之后通过遍历那一串特殊符号,通过replace函数将这些特殊符号转化为空字符串,也就是变相剔除了。接下来剩下的都是一些单词了,因为单词之间以空格隔开,可以通过split方法将剩余的单词转化为列表,然后遍历这个单词列表,通过字典的特性,将单词作为字典的键,单词出现的次数作为字典的值。最后获取字典的值,这时候,字典的值的从大到小的顺序,就是所对应单词的排序,我们通过lambda表达式对字典进行一个排序,然后循环输出数量前十的值所对应的单词即可。
三、代码
dict={} with open("hamlet.txt","r")as file: data=file.read() data=data.lower() for c in '!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~': data=data.replace(c,"") data=data.replace("\n"," ") total=data.split() print(total) for word in total: dict[word]=dict.get(word,0)+1 items = list(dict.items()) items.sort(key = lambda x:x[1],reverse = True) for i in range(10): word,count= items[i] print("{}".format(word))
四、实验结果
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。