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加密自己的密码
Aug 04 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
Python中强大的命令行库click入门教程
Dec 26 Python
python threading和multiprocessing模块基本用法实例分析
Jul 25 Python
详解django中Template语言
Feb 22 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 Python
用Python提取PDF表格的方法
Apr 11 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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
实用函数4
2007/11/08 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
实例Python处理XML文件的方法
2015/08/31 Python
Python for循环中的陷阱详解
2018/07/13 Python
Python 互换字典的键值对实例
2019/02/12 Python
Django 外键的使用方法详解
2019/07/19 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
Python切图九宫格的实现方法
2019/10/10 Python
python字符串格式化方式解析
2019/10/19 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
运动会入场词100字
2014/02/06 职场文书
校庆团日活动总结
2014/08/28 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python