• 技术文章 >后端开发 >Python教程

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

    2016-06-06 11:30:27原创677
    前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))

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 计算
    上一篇:理解python多线程(python多线程简明教程) 下一篇:python小技巧之批量抓取美女图片
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 完全掌握Python自动操作GUI之PyAutoGUI• 一文搞懂python中Tkinter的使用• 聊聊利用python怎么读取mat文件内容(matlab数据)• Python可视化总结之matplotlib.pyplot基本参数详解• 深入了解python中的代码缩进规则
    1/1

    PHP中文网