Python 內建函數列表 > Python 的內置函數 reversed
Python 的內置函數 reversed()
是一個用于序列反轉的高效工具函數,它返回一個反向迭代器對象。以下是關于該函數的詳細說明:
- 基本用法
- 語法:
reversed(seq)
- 參數:
seq
可以是任何實現了__reversed__()
方法的對象,或者支持序列協議(__len__()
和__getitem__()
方法)的對象 - 返回值:返回一個反向迭代器對象
- 支持的數據類型
- 列表:
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
的迭代器
- 實際應用示例
# 反轉列表
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 = datadef __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
- 性能特點
reversed()
不會創建新的序列,而是返回一個迭代器,因此內存效率高- 與切片反轉
seq[::-1]
相比,reversed()
更節省內存,特別是處理大型序列時 - 時間復雜度為 O(1),因為它只是返回一個反向訪問的迭代器
- 注意事項
- 返回的迭代器是一次性的,再次迭代需要重新調用
reversed()
- 對于不可變序列(如字符串),需要配合
join()
等方法才能得到反轉后的結果 - 不支持直接反轉字典和集合,因為它們是無序的數據結構