文字列を反転する方法 Python (5つの方法)

⚡ スマートサマリー

Rev文字列をersing Python 実績のある 5 つの手法を使用します。for ループ、while ループ、スライス表記 [::-1]、reversed() 関数、および再帰です。 Less本書では、構文、コードサンプル、出力、およびパフォーマンスベンチマークについて解説しています。

  • 🔁 ループの場合: 文字を反復処理して連結する。
  • 🔂 Whileループ: インデックスをデクリメントし、文字を追加します。
  • スライス [::-1]: 最速の方法。リストを逆順にするよりも約7倍速い。
  • 📦 逆順() + 結合: 大きな文字列のための、メモリ効率の良いイテレータ。
  • 🔄 再帰: string[1:] が空になるまで再帰的に処理します。
  • 🤖 AIリファクタリング: AIはループをスライスに変換する。

Reverse 文字列 Python

文字列は順序付けられたリストまたは文字のシーケンスです。文字列は、 Python文字列を扱っている場合は Python、すべての文字を逆にしたい場合があります。良い例としては、回文ゲームを構築する場合が挙げられます。

逆順に並べた文字列では、最初の文字が最後の文字になります。ただし、 Python 文字列を反転するための組み込み関数は付属していませんが、使用できるメソッドです。

このチュートリアルでは、文字列を反転するさまざまな方法を学びます。 Python.

方法1: Reverse 文字列 Python Forループを使用する

文字列を反転する最初の方法は、以下のコード スニペットのように for ループを使用することです。

Python Code:

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

出力:

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

Code 説明:

  • このコード スニペットでは、次を使用できます reverse_string() 指定された文字列を反転する関数 string 引数として。
  • その中に、反転した文字列を格納するための空の文字列を作成できます。ping 紐を通して。
  • 文字が反転され、 reversed_string 変数に保存します.
  • 最後に、関数の最後の行は反転した文字列を返します。
  • 出力を表示するには、内部で関数呼び出しを行っています。 print() f-string を使用した関数。

方法2: Reverse 文字列 Python Whileループを使用する

使い方 whileループ内 Python これも文字列を反転する別の方法です。 以下のコード スニペットを理解してみましょう。

Python Code:

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

出力:

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

Code 説明:

  • この中の Python コードでは、反転する文字列を宣言し、反転した文字列を格納するための空の文字列を宣言しています。
  • 次に、に割り当てられる文字列の長さを見つけます。 カウント 変数に保存します.
  • その 文字列[カウント – 1] すべての反復で、文字列文字を最後から最初まで取得します。
  • そしてそれらを連結します reversed_string そして、 カウント の値です。
  • 最後に、反転した文字列を出力します。

ローping 動作しますが Pythonのスライス演算子の方がはるかに簡潔です。

方法3: Python Reverse スライサーを使用した文字列 Operaタ

文字列を逆にする別の方法はスライス演算子を使用することです。これを理解するには、以下のコードを参照してください。

Python Code:

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

出力:

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

Code 説明:

  • 作成するには 逆行する () を受け取る関数 string 引数として、その中に
  • この例では、 文字列[::-1] スライス演算子は string
  • 次に、反転された文字列が新しい変数に割り当てられます。 reversed_string
  • 最後に、新しい反転文字列が返されます。

方法4: Rev文字列を Python 逆関数の使用

を使用して文字列を逆にすることもできます reverse() Python 関数の場合、コードは次のようになります。

Python Code 例:

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

出力:

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

Code 説明:

  • このコードには、 reverse() 引数が a である関数 string.
  • その中で、空の文字列を初期化しました。
  • それを次の出力と連結します。 反転(文字列) join() 機能。
  • reverse() 関数では、反転する文字列を宣言し、元の文字列と反転した文字列を出力しています。

方法5: Python Reverse 再帰を使用した文字列

再帰とは、定義された関数が自分自身を呼び出すことを意味します。再帰関数は、自分自身を呼び出すときに再帰的であると言われます。これをよりよく理解するには、次のコード例を見てください。

Python Code:

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

出力:

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

Code 説明:

  • 上記のコードでは、 逆行する () を受け取る関数 string 引数としての関数の本体は 他の場合 声明。
  • その if ステートメントは文字列の長さが 0 に等しいかどうかをチェックし、文字列を返します。 ほかに ステートメントは 逆行する () この関数は再帰的に文字列の最後のインデックスをスライスし、それを先頭に追加します。

よくあるご質問

スライス[::-1]が最も高速です。ベンチマークによると、リストの逆順よりも約7倍、再帰よりも83倍高速です。

はい。AIはforループの反転をスライスに変換し、reversed()と[::-1]の違いを説明します。

AIツールは、ループ内での+=演算子はO(n^2)になると警告し、結合またはスライスの使用を推奨します。

これは遅延イテレータであり、新しい文字列ではありません。必要に応じて、`".join(reversed(s))` を使用して反転文字列を具体化してください。

まれに。再帰は優雅だが遅く、 Python長い文字列に対するデフォルトの再帰制限は1000フレームです。実際のコードではスライスを使用してください。

いいえ。文字列は不変です Python; 反転すると新しい文字列が返されます。元の変数は、再代入されない限り同じ値を保持します。

split を使用してリストを反転し、その後結合します: ' '.join(sentence.split()[::-1])。これにより、スペルを保持したまま単語の順序が反転されます。

必ずしもそうとは限りません。複合絵文字や結合文字は分割される場合があります。文字を安全に反転させるには、反転前に正規表現 findall(r'\X', s) を使用してください。