生成器表达式

生成器表达式与列表解析非常类似,但它并不真正创建数字列表,而是返回一个生成器,这个生成器在每次计算出一个条目后,把这个条目“产生”(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核心编程》

posted @ 2015-12-17 00:04  dflyingfish  阅读(125)  评论(0)    收藏  举报