Python之迭代器与生成器

北慕城南 提交于 2019-11-26 01:47:30

1. 迭代器

迭代器类似于列表生成式[ i for i in range(10) ], 不过把 [ ] 换成 (),从而变成迭代器

迭代器的概念及其特点

  1. 迭代器是python最强大的功能之一,是访问集合元素的一种方式
  2. 迭代器是一个可以记住遍历位置的对象
  3. 迭代器从集合的第一个元素开始访问, 直到所有元素被访问完而结束,访问完的标识是出现异常标识StopIteration。它只能往前不能后退
  4. 迭代器有两个基本方法:iter() 和 next()
  5. 字符串、列表、元组等可迭代对象 (iterable)都可以用于创建迭代器

可迭代的对象iterable和迭代器iterator

使用isinstance() 函数来判别左参数实例是否为右参数对象的子类

  1. 判断是否为可迭代对象
    在这里插入图片描述
    结果:
    在这里插入图片描述
  2. 判断是否为迭代器:
    在这里插入图片描述
    结果
    在这里插入图片描述

案例

(1)列表迭代器
创建一个列表,通过 iter() 函数来将可迭代对象 list 转化成迭代器,再通过next()函数来逐步遍历迭代器,最后返回异常标识 StopIteration 标识表示遍历结束
在这里插入图片描述
(2)字典迭代器(迭代key值)
在这里插入图片描述

2. 生成器

生成器为一个函数

生成器的概念及其特点

  1. 在python中使用了yield的函数便称为生成器(generator)
  2. 与普通函数不同,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单的理解是:生成器就是一个迭代器
  3. 在调用生成器运行的过程中,每次遇到 yield 时,函数会暂停并保存当前运行的所有信息,返回yield的值,并在下一次执行 next() 时从当前位置继续运行
  4. 调用一个生成器函数,返回的是一个迭代对象

案例

在这里插入图片描述
结果:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!