时间:2021-05-22
问题
(来自Udacity机器学习工程师纳米学位预览课程)
用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词。返回值是一个元组列表,包含出现次数最高的 n 个单词及其次数,即 [(<单词1>, <次数1>), (<单词2>, <次数2>), ... ],按出现次数降序排列。
可以假设所有输入都是小写形式,并且不含标点符号或其他字符(只包含字母和单个空格)。如果出现次数相同,则按字母顺序排列。
例如:
print count_words("betty bought a bit of butter but the butter was bitter",3)输出
[('butter', 2), ('a', 1), ('betty', 1)]解法
"""Count words."""def count_words(s, n): """Return the n most frequently occuring words in s.""" w = {} sp = s.split() # TODO: Count the number of occurences of each word in s for i in sp: if i not in w: w[i] = 1 else: w[i] += 1 # TODO: Sort the occurences in descending order (alphabetically in case of ties) top = sorted(w.items(), key=lambda item:(-item[1], item[0])) top_n = top[:n] # TODO: Return the top n most frequent words. return top_ndef test_run(): """Test count_words() with some inputs.""" print count_words("cat bat mat cat bat cat", 3) print count_words("betty bought a bit of butter but the butter was bitter", 3)if __name__ == '__main__': test_run()小结
主要两个小技巧:
用split()将输入字符串按空格分开;
用sorted()函数对字典 先按值,再按键 进行排序,尤其是item:(-item[1], item[0])) 代表先对item的第二个元素 降序 排列(item 之前用了-),然后对第一个元素 升序 排列。多个元素的元组亦然。
以上这篇使用Python 统计高频字数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前面给大家讲解了关于在办公软件word字数统计的方法,而我们如果使用的是wps2012办公软件的话,那么是如何统计字数统计呢?关于wps字数统计在哪里就让通过各
本文实例讲述了Python实现统计文本文件字数的方法。分享给大家供大家参考,具体如下:统计文本文件的字数,从当前目录下的file.txt取文件#-*-codin
我们在使用word编辑文档以后,有时需要统计文档中的字数,如果估算字数显然是不准确的,下面就来介绍一下简单的统计字数的方法。软件名称:Word2003绿色精简版
pages看字数的方法是: 1、点按工具栏中的“显示”菜单按钮,然后选取“显示字数统计”。字数统计显示在页面底部旁边。 2、将指针移到字数统计的右侧,然后点
搜狗输入法数字统计可以显示统计你每天输入的字数,而且如果你使用qq账户登录还可以查看好友之间使用搜狗输入法输入字数排名,那么搜狗输入法输入字数统计在哪,搜狗输入