python 之生成器的介绍

时间:2023-03-09 00:11:11
python 之生成器的介绍
# 用生成器(generators)方便地写惰性运算
 def double_numbers(iterable):
for i in iterable:
yield i + i
# 生成器只有在需要时才计算下一个值。它们每一次循环只生成一个值,而不是把所有的
# 值全部算好。 # range的返回值也是一个生成器,不然一个1到900000000的列表会花很多时间和内存。 # 如果你想用一个Python的关键字当作变量名,可以加一个下划线来区分。
range_num = range(1, 900000000)
# 当找到一个 >=30 的结果就会停
# 这意味着 `double_numbers` 不会生成大于30的数。
 for i in double_numbers(range_num):
  print(i)
  if i >= 30:
    break