用 Pipe 搞定单词统计的面试题
赖勇浩(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 搞定单词统计的面试题相关推荐
- (一)梳理前端知识体系,搞定大厂必考面试题
梳理前端知识体系,搞定大厂必考面试题 常见面试题 JS基础知识 变量类型和计算 原型和原型链 作用域和闭包 异步和单线程 运行环境 HTTP协议 总结 常见面试题 JS基础知识 变量类型和计算 typ ...
- 复旦博士用130行代码搞定核酸统计,2分钟解决人工一小时工作量
整理 | 于轩 出品 | 程序人生 (ID:coder _life) 这段时间以来,全国各地的疫情发展牵动人心.为了更好地配合疫情防控,复旦大学自三月初以来启动了常态化核酸筛查工作. 这一工作要求辅导 ...
- Excel求平均值技巧,老师轻松搞定成绩统计
https://baijiahao.baidu.com/s?id=1634675012900805141&wfr=spider&for=pc 在教师的工作中,经常要对学生成绩进行统计, ...
- 复旦博士写了130行代码搞定核酸统计
- 小学成绩统计软件薪火数据,是一款帮班主任老师轻松搞定成绩统计的软件,它不仅能对学生的成绩进行统计,还能把成绩进行分析打印,让老师们轻松直观的看到学生成绩的情况。
本应用主要解决小学学生成绩可视化分析,清晰掌握年级.班级.学生整体学习情况.将模板导入之后,完成4个表单信息填写即可生成 年级.班级.学生相应成绩分析报告. 需要录入的数据源: 班级:班级名称(如:1 ...
- 谷粒商城高级篇资料_一文搞定剑指offer面试题【分文别类篇】
点击上方"蓝字",关注了解更多 数组: 面试题3:数组中重复的数字 面试题4:二维数组中的查找 面试题21:调整数组顺序使奇数位于偶数前面 面试题39:数组中出现次数超过一半的数字 ...
- 如何轻松搞定各种图形化展现
近期,大屏展示再次把 "统计图" 推向热搜榜.或许你会问为什么,这多半是因为大屏通过各种图形组件集中呈现了用户关心的数据,而其中每个组件基本都是一个呈现形态各异的统计图,有的体现了 ...
- 内部流出: 66个经典数据分析神技汇总,10分钟搞定一天工作!
不会吧,都2022年了, 还有人在网盘.B站里学"Excel的用法和表格模板"? 宝~ 那忒麻烦了,还不靠谱 今个,分享你一 华为内部流出的 Excel学习资源! 1.用Vloo ...
- 清华大学计算机博士,带你搞定大厂面试题
这是我的一个粉丝向我求助的一个大厂面试问题.很多人看到这道题第一个想到的一定是二分法,但其实不一定是往这个方向解题的.还有一部分学过数值计算的同学,能想到用牛顿迭代法,但其实这两个方法都不是最好的解法 ...
最新文章
- Python编程基础:第二十四节 作用域Scope
- SWIFT(Society for Worldwide Interbank Financial SWIFT Telecommunications---环球同业银行金融电讯协会)
- 20岁以后的男人应该知道的一些事,看一看吧
- 如何给PDF文件交换页面?操作方法你知道吗?
- 我司编写Angular单元测试的一些非正式规范
- 笔试知识点 网络安全_安全点
- “黑天鹅”,正在改变 AI 落地医疗领域的加速度
- es6 TypedArray视图
- latex 版本控制:TexStudio/Texmaker/... + git(smartGit)
- pycharm 常用设置
- 【深度讲解】手把手教你python制作萝莉音智能对话语音机器人,附全部源码!速速学起来!!
- java中将json字符串转换成map_Java中Json转Map方法
- vue前端开发框架、常用vue组件库及简单示例
- 人工智能在药物不良反应预测中的应用
- 机器学习之线性回归——OLS,岭回归,Lasso回归
- c51语言如何按位异或,51单片机教程:单片机逻辑与或异或指令详解
- 【已解决】在Win11上离线安装 .NET Framework 3.5的方法【含网盘离线文件】
- vue跨域---解决方案
- 怎样把电脑默认安装C盘的位置改成D盘?
- Android之RemoteViews