生成器表达式
生成器表达式与列表解析非常类似,但它并不真正创建数字列表,而是返回一个生成器,这个生成器在每次计算出一个条目后,把这个条目“产生”(yield)出来。生成器表达式使用了“延迟计算”(lazy evaluation) ,所以它在使用内存上更有效。
(expr for iter_var in iterable if cond_expr)
举例:
寻找文件最长的行
f = open('etc/motd', 'r')
longest = max(len(x.strip()) for x in f)
f.close()
return longest
return max(len(x.strip()) for x in open('/etc/motd'))
摘自《Python核心编程》

浙公网安备 33010602011771号