Python高级应用实例对比:高效计算大文件中的最长行的长度
人民币升值的背景,suyufeiyang,樱桃电影苗圃
前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中def是做什么的
python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在expressions中的逻...
[阅读全文]
-
-
-
-
-
-
网友评论