开发者社区> 问答> 正文

python什么是迭代器

python什么是迭代器

展开
收起
云计算小粉 2018-05-10 20:10:18 1821 0
1 条回答
写回答
取消 提交回答
  • 域名投资、域名选择、域名交易、域名行情等@我

    可以直接作用于for循环的对象统称为可迭代对象(Iterable)。
    可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。
    所有的Iterable均可以通过内置函数iter()来转变为Iterator。
    对迭代器来讲,有一个__next ()就够了。在你使用for 和 in 语句时,程序就会自动调用即将被处理的对象的迭代器对象,然后使用它的 next__()方法,直到监测到一个StopIteration异常。

    L = [1,2,3] >>> [x**2 for x in L] [1, 4, 9] >>> next(L) Traceback (most recent call last): File "", line 1, in TypeError: 'list' object is not an iterator >>> I=iter(L) >>> next(I) 1 >>> next(I) 2 >>> next(I) 3 >>> next(I) Traceback (most recent call last): File "", line 1, in StopIteration
    上面例子中,列表L可以被for进行循环但是不能被内置函数next()用来查找下一个值,所以L是Iterable。L通过iter进行包装后设为I,I可以被next()用来查找下一个值,所以I是Iterator。

    希望我提供的答案能够帮助到你,答案满意还请采纳一下,谢谢。
    另外,你可以继续留言或者到论坛参与更多的互动。

    2019-07-17 22:20:25
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载