Python——迭代器&生成器

迭代器(Iteraotr)

定义

迭代器是一个可以记住遍历的位置的对象。 换言之,当我们想要遍历一个集合中的元素时,需要有人来“记录”当前访问的位置,而迭代器正是起到这样的作用。

迭代器的特点

  1. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
  2. 迭代器只能往前不会往后

可迭代对象(Iterable):可以勇敢虚幻遍历对象中的数据元素。在Python中,除了数字类型外,字符串、列表、元组、集合和字典,都是可迭代对象类型;

  1. 调用Python内置函数iter()可以获取可迭代对象的迭代器

  2. 判断是否为可迭代对象:内置对象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语句
  • 不是“立刻计算”,而是“惰性计算”(调用生成器函数时,不会立刻执行, 而是推迟至需要调用其中的每个元素时才运行)

生成器的创建

  1. 定义一个以yield关键字标识返回值的函数
  2. 调用刚刚创建的函数,即可创建一个生成器
posted @ 2020-12-31 11:40  道恩有人鱼线  阅读(115)  评论(0)    收藏  举报