开发者社区> 问答> 正文

反向迭代

你想反方向迭代一个序列

展开
收起
哦哦喔 2020-04-16 21:30:03 887 0
1 条回答
写回答
取消 提交回答
  • 使用内置的 reversed() 函数,比如:
    
    >>> a = [1, 2, 3, 4]
    >>> for x in reversed(a):
    ...     print(x)
    ...
    4
    3
    2
    1
    反向迭代仅仅当对象的大小可预先确定或者对象实现了 __reversed__() 的特殊方法时才能生效。 如果两者都不符合,那你必须先将对象转换为一个列表才行,比如:
    
    # Print a file backwards
    f = open('somefile')
    for line in reversed(list(f)):
        print(line, end='')
    要注意的是如果可迭代对象元素很多的话,将其预先转换为一个列表要消耗大量的内存。
    
    2020-04-16 21:30:22
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载