什么是python迭代器,python测试可迭代对象

  什么是python迭代器,python测试可迭代对象

  要理解迭代器,首先要从字面上讲。

  迭代,迭代,迭代,基于最后结果的软件开发是典型的迭代更新。

  说到迭代,我们先模拟一下迭代:

  现在让我们使用while循环遍历列表list1=[1,2,3,4,5]中的所有元素。

  指数=0

  同时索引len(列表1):

  pirnt(列表1[索引])

  Index=1接下来,使用for循环来:

  对于范围内的索引(len(list1)):

  Print(list1[index])显然,以上两种方法都可以实现遍历一个列表中的所有元素。但是,它们都依赖于列表的索引,如果我们想遍历一个没有索引的数据类型,比如字典和集合。那我该怎么办?

  你可能知道可以直接用for来遍历Python中的列表、祖先、字典、集合等数据类型。像这样:

  对于list1中的I:# list 1中的所有元素都可以在不依赖索引的情况下取出。

  Print(i)那么上面的for循环到底是怎么用Python实现的呢?

  其实和我们今天要讲的迭代器有很重要的关系。接下来,我们将一步步介绍迭代器的相关内容。

  迭代对象我们之前了解过,字符串、列表、字典、祖先、集合和打开的文件句柄可以被for循环。这些物体有什么共同点?它们的共同点是都有一个叫__iter__的方法。

  总而言之:

  只要一个对象有__iter__方法,就可以称之为iterable对象。

  字符串、列表、字典、祖先、集合和打开的文件句柄都是可迭代的对象。

  简单明了一点?在Python中,所有可以被for循环的对象都是可迭代对象。

  迭代器上面提到的有__iter__方法的对象,如果调用这个特殊的__iter__方法会怎么样?

  补充:

  dict1={a: 1, b:2, c:3}

  #相当于dict。__iter__(),类似于len(dict1)等价于dict。__len__()

  D=iter(dict1)执行iter(dict1)或者调用dict1会得到什么?__iter__方法?

  你得到的是一个迭代器,有一个特殊的方法叫做__next__ method。总而言之:

  只要一个对象有__iter__ method和__next__ method,那么这个对象就可以称为迭代器。

  在一个iterable对象上调用它的__iter__方法,就得到一个iterator对象。

  迭代器的特点和优点:不依赖索引的懒计算,节省内存。缺点:不如一次性按索引取值方便,只能取回来,不能取回来。

  For循环本质为i in [1,2,3,4,5]:

  .相当于:

  I=[1,2,3,4,5]。__iter__() #获取迭代器

  虽然正确:

  尝试:

  X=i.__iter__() #获取下一个值

  除了StopIteration:

  遇到StopIteration时,Break #退出循环。

  内置方法简介:无限计数:

  从itertools导入计数

  计数器=计数(开始=13)

  打印(下一个(计数器))

  13

  打印(下一个(计数器))

  14

  循环迭代:

  从itertools导入周期

  颜色=循环([红色,黄色,绿色])

  打印(下一个(颜色))

  红色

  打印(下一个(颜色))

  黄色

  打印(下一个(颜色))

  绿色的

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: