Python

【Python】リスト含むシーケンスの要素を逆順にする方法

この記事では、リストやタプルなどのシーケンスの要素を逆順に取得する方法を解説します。

並び替え(ソート)をしたい場合は、以下の記事を参考にしてください。

【Python】リストやイテラブルの要素を昇順・降順で並び替える【ソート】この記事では、リストの要素を並び替える方法を解説します。要素を並び替えるには、リストに定義されているsort()メソッドを使うか、組み込み関数であるsorted()関数を使います。sorted関数は、リスト以外のイテラブルの要素も並び替えることができるので便利です。...

逆順にする方法

リスト含むミュータブルなシーケンスの要素を逆順にするにはreverse()メソッドを使います。

sequence.reverse()
【Python】シーケンスとは?特徴と使い方を解説この記事では、Pythonのシーケンス(sequence)について解説します。シーケンスとは、文字列やリストのような順番を持った複数の要素をまとめて扱える型のことを言います。シーケンス特有の演算も定義されているので、確認していきましょう!...

シーケンスの要素を逆順にしたオブジェクトを新しく生成したい場合は、組み込み関数のreversed()関数を使う。戻り値はreverseiteratorという型で返される。

reversed(seq)

Linkreversed(seq) – 組み込み関数 — Python ドキュメント

また、スライスのstep-1を指定することでも逆順で要素を取得できる。

sequence[::-1]
【Python】シーケンスの任意の範囲の要素を取得するスライスの使い方この記事では、Pythonのスライスの使い方を解説します。スライスは、シーケンスオブジェクトの要素を範囲で選択できます。選択した要素は、...

それでは、試しにリストを上記で紹介した3つの方法で逆順にしてみましょう。

# リストの生成
l = [1, 2, 3]

# revesed関数で逆順
reversed_l = reversed(l)
print(f'元のオブジェクト : {l}, revesed: {reversed_l}, リストに変換: {list(reversed_l)}')

# スライスで逆順
reversed_l = l[::-1]
print(f'元のオブジェクト : {l}, revesed: {reversed_l}')

# reveseメソッドで逆順
l.reverse()
print(f'元のオブジェクト : {l}')

実行結果

元のオブジェクト : [1, 2, 3], revesed: , リストに変換: [3, 2, 1]
元のオブジェクト : [1, 2, 3], revesed: [3, 2, 1]
元のオブジェクト : [3, 2, 1]

シーケンス自体を逆順にしたい場合はrevese()メソッドを使い、そうでない場合はreversed()関数かスライスを使いましょう!

逆順ループ

シーケンスの要素を逆順にしてループさせることもできる。

reversed()関数

l = [1, 2, 3]

for v in reversed(l):
    print(v) 

実行結果

3
2
1

スライス

l = [1, 2, 3]

for v in l[::-1]:
    print(v) 

実行結果

3
2
1
最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』