Python高级应用实例对比:高效计算大文件中的最长行的长度
前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存
列表解析和生成器表达式很相似:
列表解析
[exprforiter_variniterableifcond_expr]
生成器表达式
(exprforiter_variniterableifcond_expr)
方法1:最原始
longest=0
f=open(FILE_PATH,"r")
allLines=[line.strip()forlineinf.readlines()]
f.close()
forlineinallLines:
linelen=len(line)
iflinelen>longest:
longest=linelen
方法2:简洁
f=open(FILE_PATH,"r") allLineLens=[len(line.strip())forlineinf] longest=max(allLineLens) f.close()
缺点:一行一行的迭代f的时候,列表解析需要将文件的所有行读取到内存中,然后生成列表
方法3:最简洁,最节省内存
f=open(FILE_PATH,"r") longest=max(len(line)forlineinf) f.close()
或者
printmax(len(line.strip())forlineinopen(FILE_PATH))
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下