python进阶教程9:生成器和迭代器
文章目录
-
-
- python 生成器
-
- 1. 提供生成器的两种方式
-
- 1.1 生成器函数
- 1.2 生成器表达式
- 2. 生成器有哪些优点
- 3. 使用生成器需要避免的坑
- 一文看懂python的迭代器和可迭代对象
-
- 1. 判断一个对象是不是可迭代对象,是不是迭代器
- 2. 什么是可迭代对象
- 3. 什么是迭代器
- 4. 迭代器工作原理
-
- 4.1 内置函数iter获得迭代器
- 4.2 使用内置函数next遍历迭代器
- 4.3 为什么迭代器不能重复使用
- 4.4 for 循环的工作原理
- 5. 自定义可迭代对象和迭代器
- 5.1 实现__iter__方法
-
- 5.2 实现__next__方法
- 5.3 用for循环遍历
- 6. 迭代器的数量问题
-
- 6.1 只能获得一个迭代器
- 6.2 可以获得多个迭代器
-
python 生成器
首先要明确一点,生成器是一种迭代器,生成器拥有next方法并且行为和迭代器相同,都可以用于for循环。
生成器对延迟操作提供了支持,这使得python可以在需要的时候才生成结果,而不是立即产生结果。生成器更加高效的利用内存, 当需要产生大量数据时, 使用生成器返回一个惰性的迭代器, 而不是在内存中保存他们。
1. 提供生成器的两种方式
python有两种方式提供生成器
生成器函数
生成器表达式
1.1 生成器函数
如果一个函数内部出现了yield这个关键字,那么该函数就是一个生成器函数,调用生成器函数将得到一个生成器,下面的示例将演示一个生成器函数的定义和使用:
# coding=utf-8# 定义一个生成器函数
def my_generator(n