python日志处理迭代器与生成器

1.反向迭代

  • 目标:反向迭代一个序列
  • 解决方法:使用内置的reversed()函数(要求对象的的大小预先确定或者该对象实现了__reversed__()方法才可以)
  • a = [1,2,3,4,5,6]
    for i in reversed(a):
        print(i)
    
    """输出结果    
    6
    5
    4
    3
    2
    1
    """

    ps:我们可以通过在自定义的类上实现__reversed__()方法实现反向迭代

  • 例如我们生成如下一个倒计时函数:

  • class countDown(): 
        def __init__(self,start=1): 
            self.start = start 
        
        
        def __iter__(self): 
            n = self.start
            while(n>0):
                yield n
                n-=1
    
        def __reversed__(self):
            n = 1
            while(n<self.start):
                yield n
                n+=1
    
    
    '''输出10,9,8,7,6,5,4,3,2,1'''
    for i in countDown(10):
        print(i)
    
    '''输出1,2,3,4,5,6,7,8,9,10'''
    for i in reversed(countDown(10)):
        print(i)
    

     

  •  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值