Python高级应用实例对比:高效计算大文件中的最长行的长度


Posted in Python onJune 08, 2014

前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存

列表解析和生成器表达式很相似:

列表解析

[expr for iter_var in iterable if cond_expr]

生成器表达式

(expr for iter_var in iterable if cond_expr)

 方法1:最原始

longest = 0
f = open(FILE_PATH,"r")
allLines = [line.strip() for line in f.readlines()]
f.close()
for line in allLines:
    linelen = len(line)
    if linelen>longest:
        longest = linelen

方法2:简洁

f = open(FILE_PATH,"r")
allLineLens = [len(line.strip()) for line in f]
longest = max(allLineLens)
f.close()

缺点:一行一行的迭代f的时候,列表解析需要将文件的所有行读取到内存中,然后生成列表

方法3:最简洁,最节省内存

f = open(FILE_PATH,"r")
longest = max(len(line) for line in f)
f.close()

或者

print max(len(line.strip()) for line in open(FILE_PATH))
Python 相关文章推荐
Django Highcharts制作图表
Aug 27 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Django接收自定义http header过程详解
Aug 23 Python
python实现高斯判别分析算法的例子
Dec 09 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
keras 指定程序在某块卡上训练实例
Jun 22 Python
Python list和str互转的实现示例
Nov 16 Python
Python实现我的世界小游戏源代码
Mar 02 Python
python绘制箱型图
Apr 27 Python
python 爬取华为应用市场评论
May 29 Python
变长双向rnn的正确使用姿势教学
May 31 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 Python
Python实例分享:快速查找出被挂马的文件
Jun 08 #Python
python小技巧之批量抓取美女图片
Jun 06 #Python
Python学习笔记(二)基础语法
Jun 06 #Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 #Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 #Python
pycharm 使用心得(七)一些实用功能介绍
Jun 06 #Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 #Python
You might like
ThinkPHP分页类使用详解
2014/03/05 PHP
php常用文件操作函数汇总
2014/11/22 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
python安装本地whl的实例步骤
2019/10/12 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
新驾驶员个人自我评价
2014/01/03 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
2014年电教工作总结
2014/12/19 职场文书
谢师宴答谢词
2015/01/05 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL