最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 14:38:32
文档

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

Python高级应用实例对比:高效计算大文件中的最长行的长度:前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生成器表达式很相似: 列表解析 [expr for iter_var in iterable if cond_expr] 生成器表达式 (expr for iter_var in
推荐度:
导读Python高级应用实例对比:高效计算大文件中的最长行的长度:前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生成器表达式很相似: 列表解析 [expr for iter_var in iterable if cond_expr] 生成器表达式 (expr for iter_var in


前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高级应用实例对比:高效计算大文件中的最长行的长度

Python高级应用实例对比:高效计算大文件中的最长行的长度:前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生成器表达式很相似: 列表解析 [expr for iter_var in iterable if cond_expr] 生成器表达式 (expr for iter_var in
推荐度:
标签: 比较 计算 File
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top