Python——迭代器&生成器
迭代器(Iteraotr)
定义
迭代器是一个可以记住遍历的位置的对象。 换言之,当我们想要遍历一个集合中的元素时,需要有人来“记录”当前访问的位置,而迭代器正是起到这样的作用。
迭代器的特点
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
- 迭代器只能往前不会往后
可迭代对象(Iterable):可以勇敢虚幻遍历对象中的数据元素。在Python中,除了数字类型外,字符串、列表、元组、集合和字典,都是可迭代对象类型;
-
调用Python内置函数iter()可以获取可迭代对象的迭代器
-
判断是否为可迭代对象:内置对象isinstance(对象名,Iterable)和collections模块
相关方法
1. iter()创建迭代器对象
list1 = [11,22,33,44,55]
iter1 = iter(list1)#创建迭代器对象
for item in iter1:#遍历输出
print(item)
[out]:11 22 33 44 55
2. next()返回迭代器的下一个元素
list1 = [11,22,33,44,55]
iter1 = iter(list1)
print(next(iter1))#输出迭代器的下一个元素
print(next(iter1))
[out]:11 22
生成器(Generator)
定义
生成器是指生产一个新的迭代器的函数。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行。
生成器的特点
- 返回值不用return,而是yield语句
- 不是“立刻计算”,而是“惰性计算”(调用生成器函数时,不会立刻执行, 而是推迟至需要调用其中的每个元素时才运行)
生成器的创建
- 定义一个以yield关键字标识返回值的函数
- 调用刚刚创建的函数,即可创建一个生成器

浙公网安备 33010602011771号