python 迭代器、生成器基础知识
2017-11-12 16:29
381 查看
1.迭代器
2.生成器generator
迭代器对象要求支持迭代器协议的对象,在Python中, 支持迭代器协议就是实现对象的__iter__()和next()方法。 其中__iter__()方法返回迭代器对象本身; next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。
2.生成器generator
在 Python 中,使用生成器可以很方便的支持迭代器协议。 生成器通过生成器函数产生,生成器函数可以通过常规的def 语句来定义, 但是不用 return 返回,而是用 yield 一次返回一个结果,在每个结果之间挂起和继续它们的状态,来自动实现迭代协议。 也就是说,yield 是一个语法糖,内部实现支持了迭代器协议, 同时 yield 内部是一个状态机,维护着挂起和继续的状态。 生成器函数返回生成器的迭代器。 “生成器的迭代器”这个术语通常被称作”生成器”。 要注意的是生成器就是一类特殊的迭代器。作为一个迭代器,生成器必须要定义一些方法, 其中一个就是 __next__()。如同迭代器一样,我们可以使用 __next__() 函数来获取下一个值。 在一个 generator function 中,如果没有 return,则默认执行至函数完毕,如果在执行过程中 return, 则直接抛出 StopIteration 终止迭代。
相关文章推荐
- Python基础知识7:生成器和迭代器、递归
- python-基础知识之三元表达式、列表推导式、生成器表达式
- python基础之生成器迭代器
- Python基础教程----迭代器和生成器,递归,八皇后(2)
- python基础教程总结8——特殊方法,属性,迭代器,生成器,八皇后问题
- Python基础-迭代器与yield生成器
- 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用
- Python基础(8)_迭代器、生成器、列表解析
- 【脚本语言系列】关于Python基础知识迭代器,你需要知道的事
- 基础知识回顾——迭代器和生成器
- Python高手之路【九】python基础之迭代器与生成器
- Python语言基础学习(数据类型,迭代器及生成器)
- 11-Python3从入门到实战—基础之生成器和迭代器
- python基础----迭代器、生成器、协程函数及应用(面向过程实例)
- python基础-生成器,迭代器
- Python基础知识之迭代器
- Python基础-生成器和迭代器
- python-基础知识之迭代器
- Python基础知识之生成器
- python基础之生成器迭代器