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 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Python快速从注释生成文档的方法
Dec 26 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
python中eval与int的区别浅析
Aug 11 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
python实现梯度下降和逻辑回归
Mar 24 Python
python中def是做什么的
Jun 10 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
图象函数中的中文显示
2006/10/09 PHP
谈谈PHP的输入输出流
2007/02/14 PHP
UCenter Home二次开发指南
2009/05/28 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
laravel请求参数校验方法
2019/10/10 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python中的filter()函数的用法
2015/04/27 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
Python绘制数码晶体管日期
2021/02/19 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
初级Java程序员面试题
2016/03/03 面试题
教育专业自荐书范文
2013/12/17 职场文书
安全责任书范本
2014/04/15 职场文书
人事任命书怎么写
2014/06/05 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android