Python 迭代器
Posted 心之所向,素履以往
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 迭代器相关的知识,希望对你有一定的参考价值。
1、迭代器定义
迭代器只不过是一个实现了迭代器协议的容器对象。它基于两个方法:
next 返回容器的下一个项目
__iter__ 返回迭代器本身
2、内建函数iter()
迭代器可以通过内置函数iter()和一个序列创建:
it = iter(‘abc‘) print it.next() print it.next() print it.next() print it.next()
a b c Traceback (most recent call last): File "f: estiter.py", line 7, in <module> print it.next() StopIteration
当序列遍历完时,将抛出StopIteration异常,这使迭代器和循环兼容,因为它们将捕获这个异常而停止循环。
3、生成定制迭代器
要创建定制迭代器,编写一个具有next()方法的类,只要该类提供返回迭代器实例的__iter__()方法即可。
class MyIterator(object): def __init__(self, step): self.step = step def next(self): if self.step == 0: raise StopIteration self.step -= 1 return self.step def __iter__(self): return self for it in MyIterator(4): print it
3
2
1
0
以上是关于Python 迭代器的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]
python:可迭代对象,迭代器,生成器函数,生成器的解析举例代码说明