美文网首页
python 反向遍历

python 反向遍历

作者: 孙广宁 | 来源:发表于2022-05-15 17:45 被阅读0次
    4.5 如何反向遍历序列中的元素
    • 可以使用 reversed()
    >>> a=[1,2,3,5]
    >>> for x in reversed(a):
    ...     print(x)
    ...
    5
    3
    2
    1
    
    • 方向遍历只有在待处理的对象拥有可确定的大小,或者对象实现了reversed()特殊方法时,才能生效,如果两个条件都无法满足,则必须首先将这个对象转为列表。
    >>> f = open('/etc/passwd')
    >>> for line in reversed(list(f)):
    ...     print(line,end='')
    ...
    
    • 但是上述反转代码,在遇到大文本时,将耗费大量的内存。
    • 自定义类的反转函数如下
    >>> class C:
    ...     def __init__(self,start):
    ...         self.start = start
    ...     def __iter__(self):
    ...         n = self.start
    ...         while n>0:
    ...             yield n
    ...         n -= 1
    ...     def __reversed__(self):
    ...         n =1
    ...         while self.start>=n:
    ...             yield n
    ...         n +=1
    ...
    >>>
    
    • 定义一个反向代理会使代码更高效,因为这样就不用提前先把数据放到列表中。

    相关文章

      网友评论

          本文标题:python 反向遍历

          本文链接:https://www.haomeiwen.com/subject/abfwyrtx.html