如何在 Python 中反轉字串

透過視覺化程式碼範例了解如何使用切片、reversed() 函數和循環串聯在 Python 中反轉字串。

在編輯器中嘗試此解決方案

概述

字串操作是文字處理、解析和演算法問題解決的核心功能。反轉字串是一個經典練習,展示了 Python 資料結構的靈活性。由於 Python 中的字串是不可變的(意味著它們在創建後無法更改),因此反轉字串總是會傳回一個新字串。

在 Python 中反轉字串的最常見、慣用且最快的方法是使用切片表示法:「my_string[::-1]」。切片語法採用三個參數「[start:stop:step]」。透過省略“start”和“stop”並將“step”設為“-1”,您可以告訴Python從末尾到開頭向後單步執行字串。在底層,這種切片操作是用優化的 C 程式碼實現的,使其速度異常快。

或者,您可以使用內建的“reversed()”函數,該函數傳回以相反順序產生字元的迭代器。若要將此迭代器轉換回字串,請使用 `"".join(reversed(text))` 將它們連接起來。如果您想直接循環反轉字元而無需先建立新字串,則此方法具有很高的可讀性且效果很好。

程式碼和執行輸出

此腳本演示了使用切片、連接+反轉和手動循環實作來反轉字串。

reverse_string.py
在編輯器中嘗試
text = "PyRun"

# Method 1: Slicing (Fastest & most common)
reversed_slice = text[::-1]
print("Slicing:", reversed_slice)

# Method 2: reversed() and join() (Very readable)
reversed_join = "".join(reversed(text))
print("Reversed join:", reversed_join)

# Method 3: Loop (Useful for demonstrating logic)
reversed_loop = ""
for char in text:
    reversed_loop = char + reversed_loop
print("Loop method:", reversed_loop)
端子輸出
Slicing: nuRyP
Reversed join: nuRyP
Loop method: nuRyP

逐步實施

  • 使用切片符號 [::-1] 是反轉字串的最快、最 Pythonic 的方法。
  • 使用 "".join(reversed(text)) 使用基於迭代器的方法反轉字串。
  • 永遠記住,反轉字串會在記憶體中建立一個新的字串物件。

常見問題解答

字串切片是反轉字串最快的方法嗎?

是的,切片表示法是用 C 實現的,並且運行速度比循環或生成器表達式快得多。

為什麼我不能就地反轉字串?

Python 中的字串是不可變的,這意味著它們的字元不能就地修改。您必須建構一個新字串。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。