如何在 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 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。