Python で文字列を反転する方法

スライス、reversed() 関数、ループ連結を使用して Python で文字列を反転する方法を、ビジュアル コード例とともに学びます。

エディターでこのソリューションを試してください

概要

文字列操作は、テキスト処理、解析、およびアルゴリズムによる問題解決の中核となる機能です。文字列の反転は、Python のデータ構造の柔軟性を示す古典的な演習です。 Python の文字列は不変 (つまり、作成後に変更できない) であるため、文字列を反転すると常に新しい文字列が返されます。

Python で文字列を反転する最も一般的で慣用的かつ最速の方法は、スライス表記法 `my_string[::-1]` を使用することです。スライス構文は 3 つのパラメータ `[start:stop:step]` を取ります。 `start` と `stop` を省略し、`step` を `-1` に設定すると、文字列を最後から最初に向かって逆方向にステップ実行するように Python に指示します。内部では、このスライス操作は最適化された C コードで実装されているため、非常に高速になります。

あるいは、組み込みの `reversed()` 関数を使用することもできます。この関数は、文字を逆の順序で生成する反復子を返します。このイテレータを文字列に変換するには、`"".join(reversed(text))` を使用してそれらを結合します。このメソッドは可読性が高く、最初に新しい文字列を作成せずに反転した文字を直接ループする場合に適しています。

コードと実行の出力

このスクリプトは、スライス、結合 + 反転、および手動ループ実装を使用して文字列を反転する方法を示します。

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

段階的な実装

  • 文字列を反転する最速かつ最も Python 的な方法には、スライス表記 [::-1] を使用します。
  • イテレータベースのアプローチを使用して文字列を反転するには、 "".join(reversed(text)) を使用します。
  • 文字列を反転すると、メモリ内に新しい文字列オブジェクトが作成されることに常に注意してください。

よくある質問

文字列のスライスは文字列を元に戻す最も速い方法ですか?

はい、スライス表記は C で実装されており、ループやジェネレーター式よりもはるかに高速に実行されます。

文字列をその場で反転できないのはなぜですか?

Python の文字列は不変です。つまり、その文字をその場で変更することはできません。新しい文字列を作成する必要があります。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。