Python高级应用实例对比:高效计算大文件中的最长行的长度

 更新时间:2014年06月08日 09:42:58   作者:  
在操作某个很多进程都要频繁用到的大文件的时候,应该尽早释放文件资源(f.close()),只有这样才能算是一则高效率的代码,下面我们就来分析下这3种方法的优劣

前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流程控制 while循环实现解析

    Python流程控制 while循环实现解析

    这篇文章主要介绍了Python流程控制 while循环实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解Python 实现 ZeroMQ 的三种基本工作模式

    详解Python 实现 ZeroMQ 的三种基本工作模式

    ZMQ是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单、简洁和性能更高。 ,这篇文章主要介绍了Python 实现 ZeroMQ 的三种基本工作模式,需要的朋友可以参考下
    2020-03-03
  • Python ttkbootstrap 制作账户注册信息界面的案例代码

    Python ttkbootstrap 制作账户注册信息界面的案例代码

    ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序。本文重点给大家介绍Python ttkbootstrap 制作账户注册信息界面的案例代码,感兴趣的朋友一起看看吧
    2022-02-02
  • pycharm2022.2远程连接服务器调试代码实现

    pycharm2022.2远程连接服务器调试代码实现

    本文主要介绍了pycharm2022.2远程连接服务器调试代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 基于python实现cdn日志文件导入mysql进行分析

    基于python实现cdn日志文件导入mysql进行分析

    这篇文章主要介绍了基于python实现cdn日志文件导入mysql进行分析,本文以阿里云CDN日志作为辅助查询数据展开主题内容,其它云平台大同小异,需要的小伙伴可以参考一下
    2022-05-05
  • python 实现让字典的value 成为列表

    python 实现让字典的value 成为列表

    今天小编就为大家分享一篇python 实现让字典的value 成为列表,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pygame可视化幸运大转盘实现

    pygame可视化幸运大转盘实现

    这篇文章主要介绍了pygame可视化幸运大转盘实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 虚拟环境下搭建一个Django项目

    虚拟环境下搭建一个Django项目

    这篇文章主要为大家介绍了虚拟环境下搭建一个Django项目的实现过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • selenium3+python3环境搭建教程图解

    selenium3+python3环境搭建教程图解

    这篇文章主要介绍了selenium3+python3环境搭建教程图解,需要的朋友可以参考下
    2018-12-12
  • python编程冒泡排序法实现动图排序示例解析

    python编程冒泡排序法实现动图排序示例解析

    这篇文章主要介绍了python编程中如何使用冒泡排序法实现动图排序的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10

最新评论