码迷,mamicode.com
首页 > 编程语言 > 详细

Python 生成器与迭代器

时间:2018-07-25 13:47:18      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:返回   size   函数   dem   pytho   函数调用   生成   print   span   

一、可迭代对象与迭代器


  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 生成器与迭代器

标签:返回   size   函数   dem   pytho   函数调用   生成   print   span   

原文地址:https://www.cnblogs.com/dalun101/p/9365420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!