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 list语法学习(带例子)
Nov 01 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
python实现用户登录系统
May 21 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
python实现换位加密算法的示例
Oct 14 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
简单了解python列表和元组的区别
May 14 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 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通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
php中file_exists函数使用详解
2015/05/08 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
面试常见的js算法题
2017/03/23 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
使用Python绘制图表大全总结
2017/02/11 Python
Windows下python3.7安装教程
2018/07/31 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
公司领导班子对照材料
2014/08/18 职场文书
读后感作文评语
2014/12/25 职场文书
教师继续教育反思周记
2015/06/25 职场文书
党员反邪教心得体会
2016/01/15 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android