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解析并修改XML文档的方法
Oct 15 Python
Python数据类型详解(一)字符串
May 08 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
Django的CVB实例详解
Feb 10 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
Django如何批量创建Model
Sep 01 Python
python 将html转换为pdf的几种方法
Dec 29 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 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垃圾代码优化操作代码
2010/08/05 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
js实现日期级联效果
2014/01/23 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python实现烟花小程序
2019/01/30 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
降低python版本的操作方法
2020/09/11 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
小区物业门卫岗位职责
2014/04/10 职场文书
欢度春节标语
2014/07/01 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书