生成器表达式

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表达式上创建简单的循环时,都应该使用它,或者用它来代替表现类似迭代器的列表推导。

相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
  • 2021-12-23
  • 2021-07-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-06-08
  • 2022-12-23
相关资源
相似解决方案