Pythonのスライス操作でリストを反転させる方法
Pythonでは、スライス(リストスライシング)を使うことで、ループや組み込み関数に頼らずにリストを簡単に反転させることができます。この記事では、n個の要素を持つリスト nums を、スライス操作だけで逆順にする方法を解説します。
問題の例
たとえば、次のようなリストが入力として与えられたとします。
nums = [5,7,6,4,6,9,3,6,2]
この場合、期待される出力は以下の通りです。
[2, 6, 3, 9, 6, 4, 6, 7, 5]
解き方のポイント
Pythonのスライス構文は、コロンで区切って最大3つのパラメータを指定できます。それぞれの意味は次の通りです。
- 第1引数(start): スライスを開始するインデックス
- 第2引数(end): スライスを終了するインデックス
- 第3引数(step): 要素を取り出す間隔(ステップ数)
リスト全体を対象にする場合、先頭から始まり末尾で終わるため、start と end の指定は省略できます。しかし、反転させるには後ろから1つずつ要素を取り出す必要があるため、step に -1 を指定します。これにより、末尾から先頭へ向かって1つずつ減りながら要素が取得されます。
したがって、スライスの記法は [::-1] のようになります。
実装例
それでは、実際のコードを見てみましょう。
def solve(nums): return nums[::-1] nums = [5,7,6,4,6,9,3,6,2] print(solve(nums))
入力
[5,7,6,4,6,9,3,6,2]
出力
[2, 6, 3, 9, 6, 4, 6, 7, 5]
補足:他の反転方法との比較
なお、Pythonにはリストを反転させる方法が他にもあります。reversed() 関数や list.reverse() メソッドでも同様の結果が得られますが、スライス [::-1] を使う方法は1行で書けて簡潔なのが特徴です。ただし、新しいリストが生成される点に注意してください。元のリスト自体を変更したい場合は reverse() メソッドが適しています。
-
Pythonで3Dリスト(3次元配列)を作成する方法【サンプルコード付き】
3Dリストとは、いわゆる3次元配列のことです。本記事では、Pythonで3Dリストを作成し、その内容を整形して出力するプログラムを解説します。ここでは例として、文字列「*」を初期値とする3×2×2の3次元リストを生成しますが、仕組みを理解すれば整数など任意の要素を持つ配列にも簡単に応用できます。 3Dリストのイメージ 3次元リストは、リストの中にリスト、さらにその中にリストが入った多段構造のデータです。たとえば、3×3×2の3Dリストは次のように表現できます。 [[1,1,1],[2,2,2],[3,3,3]], [[4,4,4],[5,5,5],[6,6,6]] アルゴリズム ステップ1:
-
文中の各単語を逆順に並べ替えるPythonプログラムの書き方
この記事では、Pythonの組み込み関数を使って、文の中の各単語を逆順にする方法を解説します。処理の流れはシンプルで、まず文を単語のリストに分割し、次に各単語を反転させて新しいリストを作成し(ここではリスト内包表記を活用)、最後にそのリストを結合して新しい文を生成します。 実行例 入力 :: PYTHON PROGRAM 出力 :: NOHTYP MARGORP アルゴリズム ステップ1 : 文を入力し、変数 s に格納する。 ステップ2 : 文を単語のリストに分割する。 w = s.split( ) ステップ3 : 各単語を反転させ、新しい単語リスト nw を作成する。 ステップ