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遍历pandas数据方法总结
Feb 09 Python
Python生成短uuid的方法实例详解
May 29 Python
pycharm 解除默认unittest模式的方法
Nov 30 Python
python中正则表达式与模式匹配
May 07 Python
利用python求积分的实例
Jul 03 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
Python字符串中删除特定字符的方法
Jan 15 Python
Python实现AI自动抠图实例解析
Mar 05 Python
详解用Python爬虫获取百度企业信用中企业基本信息
Jul 02 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
JavaScript中的property和attribute介绍
2011/12/26 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
有关Python的22个编程技巧
2018/08/29 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
个人培训自我鉴定
2014/03/28 职场文书
出售房屋协议书范本
2014/10/06 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
三八妇女节致辞
2015/07/31 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
centos7安装mysql5.7经验记录
2022/05/02 Servers