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

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

  1. 基本用法
    • 语法:reversed(seq)
    • 参数:seq 可以是任何实现了 __reversed__() 方法的对象,或者支持序列协议(__len__()__getitem__() 方法)的对象
    • 返回值:返回一个反向迭代器对象
  2. 支持的数据类型
    • 列表: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 的迭代器
  3. 实际应用示例 ```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),因为它只是返回一个反向访问的迭代器
  2. 注意事项
    • 返回的迭代器是一次性的,再次迭代需要重新调用 reversed()
    • 对于不可变序列(如字符串),需要配合 join() 等方法才能得到反转后的结果
    • 不支持直接反转字典和集合,因为它们是无序的数据结构