python高级实例_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))

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

本文地址: http://www.cppcns.com/jiaoben/python/109215.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值