python 之生成器的介绍

# 用生成器(generators)方便地写惰性运算
1 def double_numbers(iterable):
2     for i in iterable:
3         yield i + i
# 生成器只有在需要时才计算下一个值。它们每一次循环只生成一个值,而不是把所有的
# 值全部算好。

# range的返回值也是一个生成器,不然一个1到900000000的列表会花很多时间和内存。

# 如果你想用一个Python的关键字当作变量名,可以加一个下划线来区分。
range_num = range(1, 900000000)
# 当找到一个 >=30 的结果就会停
# 这意味着 `double_numbers` 不会生成大于30的数。
1 for i in double_numbers(range_num):
2   print(i)
3   if i >= 30:
4     break

 

posted @ 2019-03-19 17:30  中科院院士  阅读(165)  评论(0编辑  收藏  举报