`
GhostFromheaven
  • 浏览: 397011 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Python 迭代器 iteraor

 
阅读更多

Python迭代器 iterator

--by GhostFromHeaven

 

迭代器是一个实现迭代器协议的容器对象,它基于两个方法:

next 返回容器的下一个元素;

__iter__ 返回迭代器本身。

迭代器可以通过内置函数iter和一个序列作为参数创建,如下:

>>> i = iter('iter')
>>> i.next()
'i'
>>> i.next()
't'
>>> i.next()
'e'
>>> i.next()
'r'
>>> i.next()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
StopIteration


 

序列遍历完后,继续调用next()就会抛出StopIteration异常

 

要创建自己的迭代器,可以实现迭代器协议,即实现next方法和__iter__特殊方法

 

>>> class MyIterator(object):
...     def __init__(self, step):
...         self.step = step
...     def next(self):
...         """Returns the next element."""
...         if self.step == 0:
...             raise StopIteration
...         self.step -= 1
...         return self.step
...     def __iter__(self):
...         """Returns the iterator itself."""
...         return self
... 
>>> for el in MyIterator(4):
...     print el
... 
3
2
1
0

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics