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 Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python多线程、异步+多进程爬虫实现代码
Feb 17 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
对python中的for循环和range内置函数详解
Apr 17 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 Python
python实现简单反弹球游戏
Apr 12 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
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
使用Python对MySQL数据操作
2017/04/06 Python
详解Python自建logging模块
2018/01/29 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
keras 多gpu并行运行案例
2020/06/10 Python
Python排序函数的使用方法详解
2020/12/11 Python
python实现KNN近邻算法
2020/12/30 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
高二英语教学反思
2014/01/19 职场文书
小学数学课题方案
2014/06/15 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
防火标语大全
2014/10/06 职场文书
医院科室评语
2015/01/04 职场文书
2015年母亲节寄语
2015/03/23 职场文书
2015小学师德工作总结
2015/07/21 职场文书
结婚幸福感言
2015/08/01 职场文书
党员读书活动心得体会
2016/01/14 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记