python之迭代器与生成器
二者都是生成一个缓存列表,生成器(generators)更像一个加强型的迭代器(iterators).二者都使用next()来取得数据;迭代器: (使用iter()方法)
a = 'abc';
it = iter(a);print it.next()
For就是一个经典的迭代器用法.
for i in a:print i (for就是当出现stopIteration错误时知道退出循环)
生成器:(使用yield关键字)
生成器使用关键字yield来推出数据;生成器同时还拥有send(val)来修改值及close()来关闭生成器;
例:斐波拉切数列:
def fib():
a,b = 0,1
while True:
yield b
a,b = b,a+b
f = fib()
页:
[1]