python之迭代器

迭代器:

  一、迭代器的概念?

    重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始值

  二、可迭代对象:

    凡是对象有__iter__方法,即为可迭代对象

    可迭代对象:字符窜、列表、元祖、字典、集合、文件。

    注:文件就是迭代器,迭代器是迭代器,生成器是迭代器

  三、什么是迭代对象:

    1、有__iter__,执行得到仍然是迭代器本身

    2、有__next__,本身

  四、判断迭代器依据:

    isinstance(s,Iterable)

    文件是迭代器
    其它是可迭代器

  五、迭代器优缺点:

    优点:

    1、提供了一种统一的(不依赖于索引的)迭代方式

    2、迭代器本身,比起其它数据类型更省内存

    缺点:

    1、一次性,只能往后走,不能回退,不如索引取值灵活

    2、无法预知什么时候取值结束,即无法预知长度

生成器:

    1、在函数内部包含yield关键,那么该函数执行的结果是生成器

    2、yield的功能:(1)、把函数的结果生产迭代器(以一种优雅的方式封装好__iter__,__next__)

            (2)、函数暂停与再继续运行的状态是由yield

 

    3、yield与return的比较?

      相同:都有返回值的功能
      不同:return只能返回一次之,yield能返回多个值

    4、raise可以抛出异常

    注:生成器就是一个迭代器

三元表达式:

  x=10

  'ok' if x>3 else 'no'

列表解析:

  l2=['egg%s' %i1 for i1 in range(11) if i1>5]

生成器表达式:

  l3=('egg%s' %i1 for i1 in range(11) if i1>5)

posted @ 2017-07-27 00:08  咬耗子的猫  阅读(94)  评论(0)    收藏  举报