python-迭代器

补充在遍历字典中 每次便利的item是字典的键名

links = {'a':'1',
         'b':'2',
         'c':'3'}

for each in links:         #each式是键
    print('%s->%s'%(each, links[each]))

迭代器:

python有两个内置函数iter() 和 next();iter()是将可迭代容器(比如字符串、列表等)变成迭代器;next()是将迭代器 向后迭代一步 起始位置是0, 迭代到最后抛出stop异常

string = 'liujialin'
it = iter(string) 
print(next(it), next(it), next(it), next(it))

通过whill 循环和 异常处理 捕获stopiteration异常

its = iter(string)
while Ture:
    try:
        print(next(its))
    except StopIteration as e:
        print(e.value)
        break
     

自定义迭代器类-实现斐波那契数列:

raise升起stop异常, 切记一定要定义iter方法 并返回自身对象。

class My_iter:
    def __init__(self, n=10)
        self.a = 0
        self.b = 1
        self.n = n
    
    def __iter__(self):
        return self

    def __next__(self):
        self.a, self.b = self.b , self.a + self.b
        if self.a > self.n:
            raise StopIteration('超出异常')
        return self.a

for 循环 会识别stop 异常 并且终止循环

iters = My_iter(10)

for i in iters:
    print(i)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值