Python:迭代器表达式

生成器表达式

Python为编写针对序列的简单生成器提供了一种快捷方式,可以使用一种类似列表推导的语法来代替yield,在此,使用圆括号代替中括号:

1 >>> iter = (x**2 for x in range(10) if x%2 == 0)
2 >>> for el in iter:
3 print el
4
5 0
6 4
7 16
8 36
9 64

这种表达式常被称为生成器表达式或者genexp,它们使用类似列表推导的方式减少了序列代码的总量,同常规的生成器一样,每次输出一个元素,所以整个序列和列表推导一样,都不会事先进行计算,每当在yield表达式上创建简单的循环时,都应该使用它,或者用它来代替表现类似迭代器的列表推导。

posted @ 2011-09-06 17:08  cython  阅读(433)  评论(0编辑  收藏  举报