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:\test\iter.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

 

转载于:https://www.cnblogs.com/alvin2010/p/9310142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值