导航
  • 报考
  • 备考
  • 政策

报考

备考

复习资料

政策

行业动态

干货|什么是迭代器,迭代对象获取迭代器

环球青藤·2019-10-14 18:24:13浏览64 收藏12

请输入下面的图形验证码

提交验证

预约成功

我知道了
摘要 当今世界充满了各种数据,而python是其中一种的重要组成部分。然而,若想其有所应用,我们需要对这些python理论进行实践。其中包含很多有趣的过程,然后将其用于某些方面。迭代对象获取迭代器很重要。今天环球网校的小编就来和大家讲讲迭代对象获取迭代器。

迭代器对象要求支持迭代器协议的对象。在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法。其中__iter__()方法返回迭代器对象本身;next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。

1、下面用个简单的列表来说迭代器的用法:

list = [1,2,3,4] # list是可迭代对象lterator = iter(list) # 通过iter()方法取得list的迭代器

print(next(lterator)) # 1 通过next()获取下一个位置的值

print(next(lterator)) # 2print(next(lterator)) # 3

print(next(lterator)) # 4输出:1234

看完上面代码,我想很多人纳闷列表怎么可以有一个迭代器。由于面试题篇幅有限,大家如果想了解可迭代对象怎么可以获取迭代器呢?我会继续展开分享 。

列表、元组、字典、字符串都是可迭代对象。

数字、布尔值都是不可迭代的。

2、重点来说说迭代对象怎么可以获取迭代器这个问题

import collectionsprint(isinstance([1, 2, 3], collections.Iterable)) #isinstance(object,classinfo)内置函数可以判断一个对象是否是一个已知的类型输出:True

从上面代码可以知道,可迭代对象都是collections模块里的Iterable类创建出来的实例。你写一个列表,不是简单一个列表,其实它就是Iterable类创建的实例对象。点进Iterable的类看一下:

class Iterable(metaclass=ABCMeta): __slots__ = () @abstractmethod def __iter__(self): # 注意点 while False: yield None

原来由Iterable创建的对象,是有一个方法__iter__(self)的。这个方法就是返回一个迭代器的。所以,由Iterable类创建的实例对象,是可以拿出一个迭代器的。

以上就是迭代对象获取迭代器的内容。可能在刚讲解完这一实际应用之后,大家的印象还很模糊,不如打开电脑,那正好现在就上手操作一下,试一试吧!也许你还会发现更多python应用为您带来的乐趣环球网校的小编在这里希望这些信息可以对您有所帮助。

展开剩余
资料下载
历年真题
精选课程
老师直播

注册电脑版

版权所有©环球青藤All Rights Reserved