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()

 print [f.next() for i in range(100)]

你可能感兴趣的:(python,F#)