列表解析和生成器表達式很相似:
列表解析
[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))
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com