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

yipeiwu_com6年前Python基础

前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))

相关文章

PyCharm代码格式调整方法

前言序锦 很多时候,当我们在使用编辑器的时候,遇到复制粘贴,修改别人代码等等的时候,都会遇到这个让人头疼的问题,那就是如何解决格式问题,今天就让华仔带你一起去解决这些困扰了你好久的问题吧...

Python实现二分法算法实例

1.算法:(设查找的数组期间为array[low, high]) (1)确定该期间的中间位置K (2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域...

python实现统计代码行数的小工具

python实现统计代码行数的小工具

一个用python实现的统计代码行数的小工具,供大家参考,具体内容如下 实现功能 计算出某一目录以及子目录下代码文件的行数 在计算代码的过程中,只对标准命名的文件进行统计,如[...

python实现对指定字符串补足固定长度倍数截断输出的方法

简单的小练习,注意考虑全可能就行,下面是实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:̶...

python实现趣味图片字符化

python实现趣味图片字符化

本文实例为大家分享了python实现趣味图片字符化的具体代码,供大家参考,具体内容如下 主要使用PIL库 先放效果图: 代码如下: #coding=utf-8 from PIL...