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

Python进阶-迭代器和生成器

时间:2018-07-31 15:35:53      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:print   code   style   cal   com   mos   技术   技术分享   函数   

 

  • 可迭代对象的定义

  可以直接作用于for循环的数据类型有以下几种:

  一类是集合数据类型,如listtupledictsetstr等;

  一类是generator,包括生成器和带yield的generator function。

  这些可以直接作用于for循环的对象统称为可迭代对象:Iterable

  • 生成器
    •   创建生成器的方式技术分享图片

 

 打印生成器

    • next(g) 或者 for n in g: print(n)
    • 特殊:generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
      • def odd():
            print(‘step 1‘)
            yield 1
            print(‘step 2‘)
            yield(3)
            print(‘step 3‘)
            yield(5)

        >>> o = odd() >>> next(o) step 1 1 >>> next(o) step 2 3 >>> next(o) step 3 5 >>> next(o) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration

 

Python进阶-迭代器和生成器

标签:print   code   style   cal   com   mos   技术   技术分享   函数   

原文地址:https://www.cnblogs.com/ryu-manager/p/9395446.html

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