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

相关文章

django的csrf实现过程详解

django的csrf实现过程详解

如果是ajax提交,可以按照下面的方式处理 <script src="/static/jq/jquery-3.3.1.js"></script> <s...

python字符串对其居中显示的方法

本文实例讲述了python字符串对其居中显示的方法。分享给大家供大家参考。具体如下: 下面的代码可以让字符串居中,左对齐和右对齐,字符串长度设置为50,居中后左右补充空格,右对齐会在左侧...

python开启多个子进程并行运行的方法

本文实例讲述了python开启多个子进程并行运行的方法。分享给大家供大家参考。具体如下: 这个python代码创建了多个process子进程,创建完成后先start(),最后统一join...

Python守护进程用法实例分析

本文实例讲述了Python守护进程用法。分享给大家供大家参考。具体分析如下: 守护进程是可以一直运行而不阻塞主程序退出。要标志一个守护进程,可以将Process实例的daemon属性设置...

PyTorch上实现卷积神经网络CNN的方法

一、卷积神经网络 卷积神经网络(ConvolutionalNeuralNetwork,CNN)最初是为解决图像识别等问题设计的,CNN现在的应用已经不限于图像和视频,也可用于时间序列信号...