[5 min python] 內建函數 - reversed()

更新 發佈閱讀 5 分鐘

Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。

reversed():反轉序列

語法:

reversed(seq)  # 回傳反轉的迭代器

reversed() 會回傳一個反轉的迭代器(iterator),可以用在任何支援 __reversed__() 或同時有 __len__() 和 __getitem__() 的物件上,例如列表、元組、字串、range 等。

# 反轉列表
nums = [1, 2, 3, 4, 5]
for n in reversed(nums):
    print(n, end=" ")  # 5 4 3 2 1
print()

# 原列表不變
print(nums)  # [1, 2, 3, 4, 5]

reversed() 回傳的是迭代器

reversed() 不會直接回傳列表,而是一個迭代器。如果需要列表,要用 list() 轉換。

nums = [1, 2, 3]

# 回傳迭代器
rev = reversed(nums)
print(rev)        # <list_reverseiterator object at 0x...>
print(type(rev))  # <class 'list_reverseiterator'>

# 轉成列表
print(list(reversed(nums)))   # [3, 2, 1]

# 轉成元組
print(tuple(reversed(nums)))  # (3, 2, 1)

# 用 join 反轉字串
print("".join(reversed("hello")))  # olleh

reversed() vs 切片 [::-1]

兩者都能反轉,但 reversed() 回傳迭代器(省記憶體),切片會建立新的完整物件。

nums = [1, 2, 3, 4, 5]

# 切片:建立新列表
rev_slice = nums[::-1]
print(rev_slice)  # [5, 4, 3, 2, 1]

# reversed():迭代器,省記憶體
for n in reversed(nums):
    print(n, end=" ")  # 5 4 3 2 1

# 字串反轉比較
s = "Python"
print(s[::-1])                   # nohtyP
print("".join(reversed(s)))      # nohtyP

搭配 range 使用

# 反轉 range
for i in reversed(range(5)):
    print(i, end=" ")  # 4 3 2 1 0
print()

# 等同於
for i in range(4, -1, -1):
    print(i, end=" ")  # 4 3 2 1 0

小小綜合例子

# 回文檢查器
def is_palindrome(text):
    cleaned = text.lower().replace(" ", "")
    return cleaned == "".join(reversed(cleaned))

print(is_palindrome("racecar"))      # True
print(is_palindrome("hello"))        # False
print(is_palindrome("A man a plan a canal Panama".replace(" ", "")))  # True

# 倒序印出歷史紀錄
history = ["登入", "查看首頁", "搜尋商品", "加入購物車", "結帳"]
print("操作紀錄(最新優先):")
for i, action in enumerate(reversed(history), 1):
    print(f"  {i}. {action}")
# 1. 結帳
# 2. 加入購物車
# 3. 搜尋商品
# 4. 查看首頁
# 5. 登入
留言
avatar-img
艾利斯幻想旅程
8會員
499內容數
網路世界是一個充滿多元性與無限可能的空間,人們可以在此分享資訊、交流思想,並展現無盡的創造力。然而,隨著社交媒體和線上論壇的普及,一種有趣且獨特的現象也隨之興起——廢文。廢文指的是那些內容看似無聊、無害,或表面上毫無意義的帖子、留言或圖片,通常目的在於娛樂或逗趣,而非提供實質價值的資訊。
艾利斯幻想旅程的其他內容
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 sorted():排序 語法: sorted(iterable, *, key=None, reverse=False)
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 sorted():排序 語法: sorted(iterable, *, key=None, reverse=False)
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 range():產生整數序列 語法: range(stop) # 從 0 到 stop-1 r
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 range():產生整數序列 語法: range(stop) # 從 0 到 stop-1 r
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 frozenset():建立不可變集合 語法: frozenset() # 空的不可變集合 froz
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 frozenset():建立不可變集合 語法: frozenset() # 空的不可變集合 froz
看更多