Python高级应用实例对比:高效计算大文件中的最长行的长度 前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生成器表达式很相似: 列表解析 [expr for iter_var in iterable if cond_expr] 生成器表达式 (expr for iter_var in iterable if cond_expr) 方法1:最原始 复制代码 代码如下:longest = 0f = 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))