【Python】文字列を反転する4つの方法

この記事では文字列を反転する方法を4つご紹介します。

入力された文字列に対して反転する方法はリストのスライスを使うのがシンプルで高速ですが、他の方法もあります。

以下の4つの方法についてそれぞれコードと共に説明していきます。

  • リストのスライスを使う
  • ループを使う
  • Listのreverse()を使う
  • 再帰関数を使う

リストのスライス

この方法が最も簡単で高速です。

Pythonで文字列を扱う場合には、スライスが使えます。

[start,stop,step]でスライスを指定します。

[::-1]にすると、start,stopは デフォルトの値となり、0から文字列の長さまでとなり、stepが-1なので文字列の最後から最初まで進みます。

以下のコードの出力は、”EDCBA”になります。

ループを使う

ループを使った実装では、それぞれの文字を1つずつ取り出し、逆順に連結します。

for文を使って文字を取り出し、左側に足していきます。

Listのreverse()を使う

Pythonで用意されているList型には、要素を反転させるreverse関数が用意されています。

与えられた文字列をリスト型に変換し、reverse関数を適用する方法です。

再帰関数を使う

再帰関数を使うのが最も難しい方法です。

再帰関数をイメージするには実際の処理を書き出してみます。

():再帰関数に渡すことを意味する

(ABCDE)

(BCDE)+A

(CDE)+B

(DE)+C

(E)+D

長さが1なのでEを返却

ED

EDC

EDCB

EDCBA

つまり、以上の処理をまとめると、

  1. 文字列の長さが1だったら、文字を返却
  2. それ以外は、文字列の1番目以降の値を再帰関数に渡し、1番目の文字を右から足す

という処理になります。

 

ABOUTこの記事をかいた人

のっくん

理系院卒で大企業の研究所に就職。 趣味はプログラミング、レアジョブ英会話、筋トレ、旅行。 Twitter:@yamagablog