Python 的内置函数 reversed

Python 内建函数列表 > Python 的内置函数 reversed

Python 的内置函数 reversed() 是一个用于序列反转的高效工具函数,它返回一个反向迭代器对象。以下是关于该函数的详细说明:

  1. 基本用法
  • 语法:reversed(seq)
  • 参数:seq 可以是任何实现了 __reversed__() 方法的对象,或者支持序列协议(__len__()__getitem__() 方法)的对象
  • 返回值:返回一个反向迭代器对象
  1. 支持的数据类型
  • 列表:reversed([1, 2, 3]) → 返回 [3, 2, 1] 的迭代器
  • 元组:reversed((1, 2, 3)) → 返回 (3, 2, 1) 的迭代器
  • 字符串:reversed("abc") → 返回 "cba" 的迭代器
  • 范围对象:reversed(range(5)) → 返回 4, 3, 2, 1, 0 的迭代器
  1. 实际应用示例
python 复制代码
# 反转列表
lst = [1, 2, 3, 4]
for num in reversed(lst):
    print(num)  # 输出:4, 3, 2, 1

# 字符串反转
s = "hello"
reversed_str = ''.join(reversed(s))  # "olleh"

# 自定义类的反转
class MySeq:
    def __init__(self, data):
        self.data = data
    
    def __len__(self):
        return len(self.data)
    
    def __getitem__(self, index):
        return self.data[index]

seq = MySeq([10, 20, 30])
for item in reversed(seq):
    print(item)  # 输出:30, 20, 10
  1. 性能特点
  • reversed() 不会创建新的序列,而是返回一个迭代器,因此内存效率高
  • 与切片反转 seq[::-1] 相比,reversed() 更节省内存,特别是处理大型序列时
  • 时间复杂度为 O(1),因为它只是返回一个反向访问的迭代器
  1. 注意事项
  • 返回的迭代器是一次性的,再次迭代需要重新调用 reversed()
  • 对于不可变序列(如字符串),需要配合 join() 等方法才能得到反转后的结果
  • 不支持直接反转字典和集合,因为它们是无序的数据结构
相关推荐
草莓熊Lotso2 分钟前
C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战
前端·c++·python·selenium
Olrookie14 分钟前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
请你喝好果汁64124 分钟前
Conda_bashrc 初始化机制学习笔记
笔记·学习·conda
我是李武涯25 分钟前
PyTorch Dataloader工作原理 之 default collate_fn操作
pytorch·python·深度学习
Kratzdisteln1 小时前
【Python】绘制椭圆眼睛跟随鼠标交互算法配图详解
python·数学·numpy·pillow·matplotlib·仿射变换
maxruan1 小时前
PyTorch学习
人工智能·pytorch·python·学习
_李小白2 小时前
【Android Gradle学习笔记】第八天:NDK的使用
android·笔记·学习
唐古乌梁海2 小时前
【python】在Django中,执行原生SQL查询
python·sql·django
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring
摇滚侠2 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 遍历 笔记40
spring boot·笔记·thymeleaf