Pythonで文字列内の単語を逆順に並べ替える方法
Pythonでは、split()メソッドとreversed()関数を組み合わせることで、文字列内のすべての単語を簡単に逆順にすることができます。この記事では、具体的な手順とサンプルコードを通じて、その実装方法を解説します。
やりたいこと
まず、入力と出力のイメージをサンプルで確認しましょう。
入力: string = "I am a python programmer" 出力: programmer python a am I
別の例も見てみます。
入力: string = "tutorialspoint is a educational website" 出力: website educational a is tutorialspoint
このように、単語自体はそのままに、単語の並び順だけを逆にするのが目標です。
アルゴリズムの手順
以下の手順に従うことで、目的の出力を得ることができます。
- 対象となる文字列を初期化する。
- split()メソッドで文字列を空白区切りで分割し、結果のリストを変数wordsに格納する。
- reversed()関数を使って、単語のリストを逆順にする。
- 結果をlist()でリスト型に変換する。
- join()関数で単語を連結し、結果を出力する。
実装例1
上記のアルゴリズムを実際のコードにすると、次のようになります。
## 文字列の初期化
string = "I am a python programmer"
## 文字列を空白で分割
words = string.split()
## reversed()関数で単語を逆順にする
words = list(reversed(words))
## 単語を連結して出力
print(" ".join(words))
出力結果
上記のプログラムを実行すると、以下の出力が得られます。
programmer python a am I
実装例2
次に、別の入力でも同じコードを実行してみましょう。
## 文字列の初期化
string = "tutorialspoint is a educational website"
## 文字列を空白で分割
words = string.split()
## reversed()関数で単語を逆順にする
words = list(reversed(words))
## 単語を連結して出力
print(" ".join(words))
出力結果
実行すると、以下のように単語が逆順に出力されます。
website educational a is tutorialspoint
補足: より簡潔な書き方
スライス構文を使えば、さらに短いコードで同じ処理を実現できます。
string = "I am a python programmer"
print(" ".join(string.split()[::-1]))
[::-1]はリストを逆順にするスライス表記で、reversed()関数と同様の効果があります。状況に応じて使い分けるとよいでしょう。
まとめ
このように、Pythonではsplit()で文字列を単語に分割し、reversed()またはスライス[::-1]で逆順にしてから、join()で再び連結するというシンプルな流れで、文字列内の単語を逆順に並べ替えることができます。チュートリアルについて疑問点がある場合は、コメント欄でお気軽にお尋ねください。
-
【Python】文字列から重複する単語をすべて削除する方法
Pythonで文字列に含まれる重複した単語をすべて削除するには、まず文字列をスペースで区切って各単語をリストに格納します。そのうえで、いくつかの方法で重複を取り除くことができます。 ここでは、すべての単語を小文字に変換してからソートし、重複を除外して一意な単語のみを抽出する方法を紹介します。 ソートとループを使った方法 次のコードでは、split()メソッドで文字列を単語ごとに分割し、lower()で小文字に統一したあと、リストを走査して重複しない単語だけを新しいリストに追加しています。 sent = Hi my name is John Doe John Doe is my name #
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます