赖勇浩(http://laiyonghao.com)

今天早上,@smallfishxy 公开了一条面试题:

读取文件,统计文件中每个单词出现的次数,然后按照次数高低排序。

本来蛮平淡无奇的一题,但一跟前天介绍的 Pipe 结合起来,就有意思了,这类数据流的处理,相当适合用 Pipe 来处理,花了点时间,写代码如下:

from __future__ import print_function from re import split from pipe import * with open('test_descriptor.py') as f: print(f.read() | Pipe(lambda x:split('/W+', x)) | Pipe(lambda x:(i for i in x if i.strip())) | groupby(lambda x:x) | select(lambda x:(x[0], (x[1] | count))) | sort(key=lambda x:x[1], reverse=True) )

输出:

[('self', 13), ('foo', 9), ('item', 9), ('_data', 8), ('print', 7), ('def', 5), ('return', 5), ('Jeff', 4), ('i', 4), ('in', 4), ('jeff', 4), ('ken', 4), ('obj', 4), ('val', 4), ('class', 3), ('lai', 3), ('pan', 3), ('tmp', 3), ('Foo', 2), ('ItemDescriptor', 2), ('Wrapper', 2), ('__iter__', 2), ('for', 2), ('if', 2), ('next', 2), ('object', 2), ('0', 1), ('1', 1), ('30', 1), ('8', 1), ('None', 1), ('__class__', 1), ('__future__', 1), ('__get__', 1), ('__init__', 1), ('__set__', 1), ('bin', 1), ('coding', 1), ('env', 1), ('f', 1), ('from', 1), ('import', 1), ('instance', 1), ('isinstance', 1), ('len', 1), ('list', 1), ('print_function', 1), ('python', 1), ('type', 1), ('usr', 1), ('utf', 1)]

在使用 Pipe 解题的过程中,发现一个问题:

当出错的时候,想找到错误原因太难了!

用 Pipe 搞定单词统计的面试题相关推荐

  1. (一)梳理前端知识体系,搞定大厂必考面试题

    梳理前端知识体系,搞定大厂必考面试题 常见面试题 JS基础知识 变量类型和计算 原型和原型链 作用域和闭包 异步和单线程 运行环境 HTTP协议 总结 常见面试题 JS基础知识 变量类型和计算 typ ...

  2. 复旦博士用130行代码搞定核酸统计,2分钟解决人工一小时工作量

    整理 | 于轩 出品 | 程序人生 (ID:coder _life) 这段时间以来,全国各地的疫情发展牵动人心.为了更好地配合疫情防控,复旦大学自三月初以来启动了常态化核酸筛查工作. 这一工作要求辅导 ...

  3. Excel求平均值技巧,老师轻松搞定成绩统计

    https://baijiahao.baidu.com/s?id=1634675012900805141&wfr=spider&for=pc 在教师的工作中,经常要对学生成绩进行统计, ...

  4. 复旦博士写了130行代码搞定核酸统计

  5. 小学成绩统计软件薪火数据,是一款帮班主任老师轻松搞定成绩统计的软件,它不仅能对学生的成绩进行统计,还能把成绩进行分析打印,让老师们轻松直观的看到学生成绩的情况。

    本应用主要解决小学学生成绩可视化分析,清晰掌握年级.班级.学生整体学习情况.将模板导入之后,完成4个表单信息填写即可生成 年级.班级.学生相应成绩分析报告. 需要录入的数据源: 班级:班级名称(如:1 ...

  6. 谷粒商城高级篇资料_一文搞定剑指offer面试题【分文别类篇】

    点击上方"蓝字",关注了解更多 数组: 面试题3:数组中重复的数字 面试题4:二维数组中的查找 面试题21:调整数组顺序使奇数位于偶数前面 面试题39:数组中出现次数超过一半的数字 ...

  7. 如何轻松搞定各种图形化展现

    近期,大屏展示再次把 "统计图" 推向热搜榜.或许你会问为什么,这多半是因为大屏通过各种图形组件集中呈现了用户关心的数据,而其中每个组件基本都是一个呈现形态各异的统计图,有的体现了 ...

  8. 内部流出: 66个经典数据分析神技汇总,10分钟搞定一天工作!

    不会吧,都2022年了, 还有人在网盘.B站里学"Excel的用法和表格模板"? 宝~ 那忒麻烦了,还不靠谱 今个,分享你一 华为内部流出的  Excel学习资源! 1.用Vloo ...

  9. 清华大学计算机博士,带你搞定大厂面试题

    这是我的一个粉丝向我求助的一个大厂面试问题.很多人看到这道题第一个想到的一定是二分法,但其实不一定是往这个方向解题的.还有一部分学过数值计算的同学,能想到用牛顿迭代法,但其实这两个方法都不是最好的解法 ...

最新文章

  1. Python编程基础:第二十四节 作用域Scope
  2. SWIFT(Society for Worldwide Interbank Financial SWIFT Telecommunications---环球同业银行金融电讯协会)
  3. 20岁以后的男人应该知道的一些事,看一看吧
  4. 如何给PDF文件交换页面?操作方法你知道吗?
  5. 我司编写Angular单元测试的一些非正式规范
  6. 笔试知识点 网络安全_安全点
  7. “黑天鹅”,正在改变 AI 落地医疗领域的加速度
  8. es6 TypedArray视图
  9. latex 版本控制:TexStudio/Texmaker/... + git(smartGit)
  10. pycharm 常用设置
  11. 【深度讲解】手把手教你python制作萝莉音智能对话语音机器人,附全部源码!速速学起来!!
  12. java中将json字符串转换成map_Java中Json转Map方法
  13. vue前端开发框架、常用vue组件库及简单示例
  14. 人工智能在药物不良反应预测中的应用
  15. 机器学习之线性回归——OLS,岭回归,Lasso回归
  16. c51语言如何按位异或,51单片机教程:单片机逻辑与或异或指令详解
  17. 【已解决】在Win11上离线安装 .NET Framework 3.5的方法【含网盘离线文件】
  18. vue跨域---解决方案
  19. 怎样把电脑默认安装C盘的位置改成D盘?
  20. Android之RemoteViews

热门文章

  1. [AcWing算法刷题]之DFS+BFS迷宫模板(简单)
  2. Chrome导出书签瘦身,去除ADD_DATE和ICON
  3. 获取本地计算机的网络信息
  4. Batch Normalization究竟学到了数据的什么信息?
  5. iSpring sdk运用ispring sdk下载
  6. 牛人用 Rust 重写了 Apache Spark,并把它开源了
  7. 大顶堆小顶堆优先队列
  8. Dijkstra P360
  9. 机器学习4-x——音乐推荐系统代码实现
  10. 搭建个人网站 (centos 7 + 域名 + 备案)