问题

(来自Udacity机器学习工程师纳米学位预览课程)

用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词。返回值是一个元组列表,包含出现次数最高的 n 个单词及其次数,即 [(, ), (, ), ... ],按出现次数降序排列。

可以假设所有输入都是小写形式,并且不含标点符号或其他字符(只包含字母和单个空格)。如果出现次数相同,则按字母顺序排列。

例如: 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_n

def 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 统计高频字数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

怎么用python统计字数_使用Python 统计高频字数的方法相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python 代码行数统计工具_使用Python设计一个代码统计工具

    问题 设计一个程序,用于统计一个项目中的代码行数,包括文件个数,代码行数,注释行数,空行行数.尽量设计灵活一点可以通过输入不同参数来统计不同语言的项目,例如: # type用于指定文件类型 pytho ...

  4. python分词统计词频_-用python找出一篇文章中词频最高的20个单词

    python统计一个大文件中很多小文件里面的词频 #!/usr/bin/env python3.6 from collections import Counter from functools imp ...

  5. python对excel表统计视频_列表常见统计方式2_【曾贤志】用Python处理Excel数据 - 第1季 基础篇_Excel视频-51CTO学院...

    ---------------------------------------------------------------- 学完本课程可继续巩固篇:https://edu.51cto.com/c ...

  6. python对excel表统计视频_元组常用统计方法_【曾贤志】用Python处理Excel数据 - 第1季 基础篇_Excel视频-51CTO学院...

    ---------------------------------------------------------------- 学完本课程可继续巩固篇:https://edu.51cto.com/c ...

  7. python爬虫餐饮行业数据分析统计服_用Python分析统计必胜客餐厅

    在之前的 一篇文章100行代码爬取全国所有必胜客餐厅 信息,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息.虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中"躺尸".不曾记得,自 ...

  8. python对象引用计数器_在Python中借助计数器对象对项目进行计数

    python对象引用计数器 前提 (The Premise) When we deal with data containers, such as tuples and lists, in Pytho ...

  9. python 网页编程_通过Python编程检索网页

    python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...

最新文章

  1. Excel如何设置单元格行高,办公入门
  2. 智能零售来了!Amazon Go无人商店周一正式对公众开放
  3. Linux学习笔记——例说makefile 综合案例
  4. 并发基础篇(一): Java 并发性和多线程
  5. 简单php不用mysql_简单的PHP / MySQL不工作
  6. 2021超详细的Dart语言基础总结~你值得拥有~
  7. java 字节码增强原理_深入浅出Java探针技术1--基于java agent的字节码增强案例
  8. nodeJs 是什么?你需要先想清楚这个问题,才能学习nodejs (介绍)
  9. SAP CAP 编程模型简介
  10. Java项目课程04:需求分析
  11. c语言简单的动画程序代码,发个C代码(简单动画演示)
  12. Linux 重启php
  13. Ubuntu 16.04安装 Nmap 6.46.1
  14. elementui 表格格式化
  15. Windows Server 2016-DHCP服务器审核日志大小调整
  16. 用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示
  17. 计算机进入安全模式的原因,电脑只能进入安全模式的原因及处理方法
  18. 刚构桥的优缺点_桥梁的优缺点
  19. CCTalk:为什么你做了很多无效的自动化?
  20. python2/3 opencv的fitline函数

热门文章

  1. JAVA之间的引用传递
  2. Cetos 7 命令行登陆与图形界面登陆相互切换
  3. sed、grep、awk
  4. GNU make manual 翻译( 一百一十)
  5. java String pool
  6. vue点击其它区域隐藏
  7. 视频编解码的理论和实践2:Ffmpeg视频编解码
  8. ffmpeg 基本数据结构和对象: AVPacket、AVPicture、AVFrame
  9. 8.Spring整合Hibernate_2_声明式的事务管理(Annotation的方式)
  10. Xshell配置ssh使用密钥公钥(publice key)登录