python学习笔记-生成器和迭代器

2018-03-14  本文已影响0人  一位在路上的phper

生成器:

在python中,一边循环一边计算的机制,称为生成器:generator
生成器不会把所有结果全部保存在内存中,而是保存生成的计算规则,每次迭代的时候返回一个计算出来的值,直到遇到Stoplteration异常结束。

创建生成器:

#生成列表
L=[x*x for x in range(10)]
#生成生成式
g=(x*x for x in range(10))
#生成斐波那契数列的生成器
def fib():
    a,b=0,1
    while True:
        yield b
        temp=b
        b=a+b
        a=temp

yield和return与generator之间的关系:

生成器的操作:

迭代器

可以直接作用于for循环的对象统称为可迭代对象Iterable
可以被next()调用并不断返回下一个值的对象称为迭代器Iterator

迭代器就是可迭代对象,可迭代对象不一定是迭代器,比如list、dict、set是可迭代对象,但不是迭代器。但是list...等可迭代对象可以通过itor()函数转化为迭代器

上一篇下一篇

猜你喜欢

热点阅读