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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值