美文网首页
Python 迭代器和生成器

Python 迭代器和生成器

作者: 乂尤先生 | 来源:发表于2020-08-18 09:54 被阅读0次

    迭代器

    • 迭代是Python最强大的功能之一,是访问集合元素的一种方式;

    • 迭代器是一个可以记住遍历的位置的对象;

    • 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

    • 迭代器的两个基本方法:iter(),next()

    • 字符串,列表或元祖都可用于创建迭代器

    list1 = [1,2,3,4]
    #创建迭代器对象
    it = iter(list1)
    #输出迭代的下一个元素
    print(next(it))
    

    使用for循环遍历迭代器对象

    list1 = [1,2,3,4]
    #创建一个迭代器对象
    it = iter(list1)
    for x in it:
        print(x,end=" ")
    

    生成器

    • 在Python中,使用yield的函数被称为生成器。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,简单理解为生成器就是一个迭代器。
    • 在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield,并在下一次执行next()方法时从当前位置继续运行
    • 调用一个生成器函数,返回的是一个迭代器对象

    使用yield实现斐波那契数列:

    #起始项为0,1
    numList = [0, 1]
    def fibo1(num):
        while len(numList) < num:
            a = numList[-2]
            b = numList[-1]
            #后面的项为它的前两项的和
            a,b = b,a+b
            yield b
    next_num = fibo1(10)
    for i in range(8):
        numList.append(next(next_num))
    print(numList)
    

    相关文章

      网友评论

          本文标题:Python 迭代器和生成器

          本文链接:https://www.haomeiwen.com/subject/ujshjktx.html