Python 生成器与迭代器

Posted 大伦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 生成器与迭代器相关的知识,希望对你有一定的参考价值。

一、可迭代对象与迭代器


  1.可以使用for循环的对象就是可迭代对象,例如list,tuple,dict,字符串等
     可以使用isinstance(对象,iterable)语句进行判断

  2.可以被next()函数调用,不断返回下一个值的对象叫做迭代器
     generator(生成器)都是iterator(迭代器)
     可以使用isinstance(对象,iterator)语句进行判断



二、生成器


  类似于一种算法,即边循环边计算
  常用生成方法:1.tuple生成式:例如 g = (x * 3 for x in range(10))
            2.把循环中的print改为yield,如:

 

  demo1:斐波那契数列

    def fib(max):
      n, a, b = 0, 0, 1
      while n < max:
        yield b
        a, b = b, a + b
        n = n + 1

  demo2:杨辉三角

    def triangles():
      l = [1]
      i = 1
      while True:
        yield l
        l = [1]+ [l[i-1] + l[i] for i in range(1,i)]+[1]
        i += 1

        #另一种方式
        #i = len(l)
        #l = [1]+ [l[i-1] + l[i] for i in range(1,i)]+[1]

    tri = triangles()
    n = 0
    while n < 10:
      print(next(tri))
      n += 1

 
































以上是关于Python 生成器与迭代器的主要内容,如果未能解决你的问题,请参考以下文章

python3 迭代器与生成器

Python3 迭代器与生成器

Python之迭代器,生成器与装饰器

python014 Python3 迭代器与生成器

Lesson 023 —— python 迭代器与生成器

Python迭代器与生成器