美文网首页Python
reversed() --反向迭代

reversed() --反向迭代

作者: cook__ | 来源:发表于2018-10-03 13:10 被阅读1次

使用内建的reversed()函数实现反向迭代序列中的元素(字符串、列表、元组序列):

a = [1, 2, 3]
for x in reversed(a):
    print(x)
Outs:
3
2
1

注意
1、反向迭代只有在待处理对象拥有可确定的大小时,或者对象实现了__reversed__()特殊方法时,才能奏效;
2、如果这两个条件都无法满足,则必须先将这个对象转换为列表:

f = open('somefile')
for line in reversed(list(f)): print(line)  # 当f特别大时,会消耗大量的内存
在类上自定义实现反向迭代(实现了reversed()方法):
class Countdown:
    def _init__(self, start):
        self.start =start

    # 使用生成器函数生成迭代器
    def __iter__(self):
        n = self.start
        while n>0:
            yield n
            n -= 1

    # 实现__reversed__()方法,实现反向迭代器
    def __reversed__(self):
        n = self.start
        while n<0:
            yield n
            n += 1
总结:

1、使用内建的reversed()函数实现反向迭代序列中的元素(字符串、列表、元组序列);
2、定义一个反向迭代器可使代码变得更加高效,因此这样也就无需先把数据放到列表中,然后再去反向迭代列表了。

相关文章

  • 【2017-09-21】迭代器与生成器(二)

    反向迭代和迭代切片 反向迭代问题:你想反方向迭代一个序列通常做法:使用内置的 reversed() 函数 反向迭代...

  • reversed() --反向迭代

    使用内建的reversed()函数实现反向迭代序列中的元素(字符串、列表、元组序列): 注意1、反向迭代只有在待处...

  • python cookbook学习笔记(1)

    python cookbook学习笔记连载中回调会第4章查看迭代器的用法 反向迭代迭代函数reversed() 4...

  • Python3 - 反向迭代

    问题 反方向迭代一个序列 解决方案 使用内置的 reversed() 函数,比如: 反向迭代仅仅当对象的大小可预先...

  • python学习 | P17—数列

    reversed():是返回序列seq的反向访问的迭代子。参数可以是列表,元组,字符串,不改变原对象。 enume...

  • python 内置函数 reversed()

    reversed()函数是返回序列seq的反向访问的迭代子。参数可以是列表,元组,字符串,不改变原对象。 1》参数...

  • python 中函数reversed()

    reversed()函数是返回序列seq的反向访问的迭代子。参数可以是列表,元组,字符串,不改变原对象。在此仅举列...

  • Python_反转列表的三种方式

    方式一:使用reversed()函数 注意:reversed()函数返回的是一个迭代器,而不是一个List,需要再...

  • Python反转列表的三种方式

    方式一:使用reversed()函数 注意:reversed()函数返回的是一个迭代器,而不是一个List,需要再...

  • 2021-05-16 scRNA基础分析:伪时间分析

    主要通过MonocleR包,使用反向图形嵌入(Reversed Graph Embedding)的机器学习算法,来...

网友评论

    本文标题:reversed() --反向迭代

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