Python: 使用生成器创建新的迭代模式
使用一个生成器函数来定义一个函数模式。
def frange(start, stop, increment): x = start while x < stop: yield x x += increment
可以用for循环(sum(),list()等)来迭代这个函数
>>> for n in frange(0, 4, 0.5): ... print(n) ... 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 >>> list(frange(0, 1, 0.125)) [0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875]
一个函数中需要有一个yield 语句可以将其转换成一个生成器,生成器只用于迭代操作
一个生成器函数主要特征是它只会回应在迭代中使用到的next 操作