Python で文字列を反転させる

Azaz Farooq 2023年10月10日
  1. スライシングメソッドを使って Python で文字列を反転させる
  2. ループを使った Python で文字列を反転させる
  3. reversed() 関数を用いた Python で文字列を反転させる
  4. Python で再帰メソッドを使って文字列をを反転させる
Python で文字列を反転させる

この記事では、Python で文字列を反転させる方法を紹介します。

スライシングメソッドを使って Python で文字列を反転させる

このメソッドはスライシング演算子 : を用いて文字列を反転させます。スライシングの開始インデックスは最後の要素のインデックスであり、終了インデックスは最初の要素のインデックスである(この場合は無視してもよい)。ステップは -1 で、スライスが 1 のステップで逆方向に進むことを示します。

完全なサンプルコードを以下に示します。

str = "LearnPython"

length_str = len(str)

sliced_str = str[length_str::-1]
print("The sliced string is:", sliced_str)

出力:

The sliced string is: nohtyPnraeL

ループを使った Python で文字列を反転させる

このメソッドでは、まず空の文字列を作成して反転した文字列を格納します。与えられた文字列の長さがインデックスとして変数 i に保存されます。while ループはインデックスが 0 より大きくなるまで続きます。

完全なサンプルコードを以下に示します。

str = "LearnPython"
string_reversed = []
i = len(str)
while i > 0:
    string_reversed += str[i - 1]
    i = i - 1  # decrement index
print("The Reversed String is", string_reversed)

string_reversed += str[i-1] 文は str[i-1] の値を反転した文字列に保存します。i=i-1 は文字列の先頭に到達するまでインデックスをデクリメントします。

出力:

The Reversed String is ['n', 'o', 'h', 't', 'y', 'P', 'n', 'r', 'a', 'e', 'L']

reversed() 関数を用いた Python で文字列を反転させる

reversed() 関数は与えられた文字列の反転イテレータを与えます。その要素は join() メソッドを用いて空の文字列で結合されます。

完全なサンプルコードを以下に示します。

str = "LearnPython"

reversed_string = "".join(reversed(str))

print("The Reversed String is", reversed_string)

join() メソッドは反転イテレータの結果として得られたすべての文字を新しい文字列に結合します。

出力:

The Reversed String is nohtyPnraeL

Python で再帰メソッドを使って文字列をを反転させる

再帰的な関数を使って文字列を反転させることができます。基本条件は、文字列の長さが 0 に等しい場合に文字列を返すことであり、0 に等しくない場合には、最初の文字を除いて再帰的に逆関数を呼び出して、文字列のセクションをスライスし、スライスした文字列の最後に最初の文字を連結します。

完全なサンプルコードを以下に示します。

def reverse_string(string):
    if len(string) == 0:
        return string
    else:
        return reverse_string(string[1:]) + string[0]


string = "LearnPython"

print("The original string  is : ", end="")
print(string)

print("The reversed string is : ", end="")
print(reverse_string(string))

出力:

The original string  is : LearnPython
The reversed string(using loops) is : nohtyPnraeL

関連記事 - Python String