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 相关文章推荐
python列表操作实例
Jan 14 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Python hashlib常见摘要算法详解
Jan 13 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
Python anaconda安装库命令详解
Oct 16 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
SONY SRF-M100的电路分析
2021/03/02 无线电
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python切片工具pillow用法示例
2018/03/30 Python
在python中pandas的series合并方法
2018/11/12 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
初中生个人学习的自我评价
2013/12/04 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
教师个人自我评价
2015/03/04 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python