【Python】reverse()/reversed()でオブジェクトを逆順に並べ替える!
Pythonでリストや文字列を逆順に並べ替えるにはreverse()やreversed()を使用します。
reverse()関数やreversed()関数はリストの要素を逆順に並び替える関数であり、昇順または降順関係なく右にある要素から順番に左へ並び替えることができます。
また、reverse()関数はリストの要素を逆順に並び替えることはできますが、タプルや辞書を逆順に並び替えることはできません。
しかし、reversed()関数はリストだけでなくタプルや辞書で、文字列でも逆順に並べ替えることができます。
今回はPythonのreverse()関数やreversed()関数でオブジェクトを逆順に並べ替える方法について以下の内容で解説していきます。
⚫︎ 1次元リストの要素を逆順に並べ替える場合
⚫︎ 2次元リストの要素を逆順に並べ替える場合
⚫︎ 3次元リストの要素を逆順に並べ替える場合
⚫︎ リスト(List)の要素を逆順に並べ替える場合
⚫︎ タプル(tuple)の要素を逆順に並べ替える場合
⚫︎ 辞書(dict)のキーや値を逆順に並べ替える場合
⚫︎ 文字列の文字を逆順に並べ替える場合
⚫︎ reverse()とreversed()の違い
目次
今回はPythonのreverse()/reversed()でオブジェクトを逆順に並べ替える方法について説明していきます。
はい!
お願いします!
reverse()とは
reverse()関数は、指定された反復可能オブジェクトの逆順されたリストを返す関数になります。
逆順になるので、昇順または降順関係なく右にある要素から順番に左へ並び替えられます。
reverse()の書き方
reverse()の構文は下記となります。
1 |
オブジェクト.reverse() |
reverse()関数を呼び出すことで、reverse()関数の前にあるオブジェクトを逆順に並び替えることができます。
reversed()とは
reversed()とは、シーケンス等の反復可能なオブジェクトであれば逆順にしてオブジェクトを返す関数となります。
オブジェクトを対象にするのでリストだけでなくタプルや辞書、文字列などを逆順にすることができます。
reversed()の書き方
reversed()の構文は下記となります。
1 |
reversed(逆順に並び替えるオブジェクト) |
reversed()のパラメータ
reversed()のパラメータは下記となります。
⚫︎ 逆順に並び替えるオブジェクト:
逆順に並び替え変えたいオブジェクトを指定する
(文字列やリスト、タプルなど)
reverse()で逆順に並べ替えるサンプルコード
reverse()関数を使ってリスト(list)の要素を逆順に並べ替えるサンプルコードを紹介します。
1次元リストの要素を逆順に並べ替える場合
1次元リストの要素を逆順に並べ替てみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
num = [29, 6.5, 40, -1000] animal= ["bird", "dog", "ネコ", "カメ", "ライオン"] print('・reverse()使用前') print(num) print(animal) print('・reverse()使用後') num.reverse() print(num) animal.reverse() print(animal) |
出力結果
・reverse()使用前
[29, 6.5, 40, -1000]
[‘bird’, ‘dog’, ‘ネコ’, ‘カメ’, ‘ライオン’]
・reverse()使用後
[-1000, 40, 6.5, 29]
[‘ライオン’, ‘カメ’, ‘ネコ’, ‘dog’, ‘bird’]
reverse()によって1次元リストの要素を逆順に並び替えて表示されています。
2次元リストの要素を逆順に並べ替える場合
2次元リストの要素を逆順に並べ替てみます。
例
1 2 3 4 5 6 7 8 9 10 11 |
list1 = [ [17, 0.5, -30, 51000], ['Apple', 'Strawberry', 'Pineapple', 'Grape'] ] print('・reverse()使用前') print(list1) list1[0].reverse() list1[1].reverse() print('・reverse()使用後') print(list1) |
出力結果
・reverse()使用前
[[17, 0.5, -30, 51000], [‘Apple’, ‘Strawberry’, ‘Pineapple’, ‘Grape’]]
・reverse()使用後
[[51000, -30, 0.5, 17], [‘Grape’, ‘Pineapple’, ‘Strawberry’, ‘Apple’]]
reverse()によって2次元リストの要素を逆順に並び替えて表示されています。
3次元リストの要素を逆順に並べ替える場合
3次元リストの要素を逆順に並べ替てみます。
リスト(list)の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
list1=[ [[23, 67, 67, 78], [35, 56, 120, -2345]], [['秋田県', '岩手県', '青森県', '宮城県', '山形県', '福島県'],['香川県', '徳島県', '高知県', '愛媛県']] ] print('・reverse()使用前') print(list1) print('・reverse()使用後') list1.reverse() list1[0].reverse() list1[1].reverse() list1[0][0].reverse() list1[0][1].reverse() list1[1][0].reverse() list1[1][1].reverse() print(list1) |
出力結果
・reverse()使用前
[[[23, 67, 67, 78], [35, 56, 120, -2345]], [[‘秋田県’, ‘岩手県’, ‘青森県’, ‘宮城県’, ‘山形県’, ‘福島県’], [‘香川県’, ‘徳島県’, ‘高知県’, ‘愛媛県’]]]
・reverse()使用後
[[[‘愛媛県’, ‘高知県’, ‘徳島県’, ‘香川県’], [‘福島県’, ‘山形県’, ‘宮城県’, ‘青森県’, ‘岩手県’, ‘秋田県’]], [[-2345, 120, 56, 35], [78, 67, 67, 23]]]
reverse()によって3次元リストの要素を逆順に並び替えて表示されています。
reversed()で逆順に並べ替えるサンプルコード
reversed()関数で逆順に並べ替えるサンプルコードを紹介します。
リスト(List)の要素を逆順に並べ替える場合
リストの要素を逆順に並べ替えてみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
num1 = [29, 6.5, 40, -1000] animal1= ["bird", "dog", "ネコ", "カメ", "ライオン"] print('・reversed()使用前') print(num1) print(animal1) print('・reversed()使用後') num2 = list(reversed(num1)) print(num2) animal2 = list(reversed(animal1)) print(animal2) |
出力結果
・reversed()使用前
[29, 6.5, 40, -1000]
[‘bird’, ‘dog’, ‘ネコ’, ‘カメ’, ‘ライオン’]
・reversed()使用後
[-1000, 40, 6.5, 29]
[‘ライオン’, ‘カメ’, ‘ネコ’, ‘dog’, ‘bird’]
reversed()によってリストの要素を逆順に並び替えて表示しています。
タプル(tuple)の要素を逆順に並べ替える場合
タプルの要素を逆順に並べ替えてみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
num1 = (230, 6.523, 4056, -41000) animal1= ('鳥', '犬', 'cat', 'turtle', 'lion') print('・reversed()使用前') print(num1) print(animal1) print('・reversed()使用後') num2 = tuple(reversed(num1)) print(num2) animal2 = tuple(reversed(animal1)) print(animal2) |
出力結果
・reversed()使用前
・reversed()使用前
(230, 6.523, 4056, -41000)
(‘鳥’, ‘犬’, ‘cat’, ‘turtle’, ‘lion’)
・reversed()使用後
(-41000, 4056, 6.523, 230)
(‘lion’, ‘turtle’, ‘cat’, ‘犬’, ‘鳥’)
reversed()によってタプルの要素を逆順に並び替えて表示しています。
辞書(dict)のキーや値を逆順に並べ替える場合
辞書のキーや値を逆順に並べ替えてみます。
例
1 2 3 4 5 6 7 8 |
dict1 = {'A':'Apple', 'B': 'Ball', 'C': 'Cat', 'D': 'Desk', 'E': 'Egg'} print('・reversed()使用前') print(dict1) print('・reversed()使用後') dict2 = dict(reversed(dict1.items())) print(dict2) |
出力結果
・reversed()使用前
{‘A’: ‘Apple’, ‘B’: ‘Ball’, ‘C’: ‘Cat’, ‘D’: ‘Desk’, ‘E’: ‘Egg’}
・reversed()使用後
{‘E’: ‘Egg’, ‘D’: ‘Desk’, ‘C’: ‘Cat’, ‘B’: ‘Ball’, ‘A’: ‘Apple’}
reversed()によって辞書のキーや値を逆順に並び替えて表示しています。
文字列の文字を逆順に並べ替える場合
文字列の文字を逆順に並べ替えてみます。
文字列の場合は、文字を一度リスト化し、リスト化した要素をjoin()関数で連結する必要があります。
例
1 2 3 4 5 6 7 8 9 10 |
string1= "あけましておめでとう。" print('・reversed()使用前') print(string1) string1_list = list(string1) print('・reversed()使用後') string1_rlist = list(reversed(string1_list)) string2 = "".join(string1_rlist) print(string2) |
出力結果
・reversed()使用前
・reversed()使用前
あけましておめでとう。
・reversed()使用後
。うとでめおてしまけあ
reversed()によって文字列の文字を逆順に並び替えて表示しています。
reverse()とreversed()の違い
rreverse()の他にreversed()というものもあります。
everse()関数とreversed()関数はどちらも逆順に並び替える関数になりますが、この2つには大きな違いがあります。
その違いとは「新しいリストを作るか作らないか」になります。
「新しいリストを作るか作らないか」ってどういうことですか?
reverse()は元のリストから操作を行いますが、reversed()は逆順を行った新たなリストを生成します。
言葉ではよくわからないかと思いますのでコードを書いて解説しますね。
reverse()の例
1 2 3 4 5 6 7 |
list1 = ['コーラ', 'オレンジジュース', 'コーヒー', 'ジンジャーエール'] print('・reverse()使用前') print(list1) list1.reverse() print('・reverse()使用後') print(list1) |
出力結果
・reverse()使用前
[‘コーラ’, ‘オレンジジュース’, ‘コーヒー’, ‘ジンジャーエール’]
・reverse()使用後
[‘ジンジャーエール’, ‘コーヒー’, ‘オレンジジュース’, ‘コーラ’]
reverse()によってlist1をソートしてlist1を出力しています。
これは、reverse()ですね!
そうですね。
続いて、reversed()を使って要素を並び替えてみます。
reversed()の例
1 2 3 4 5 6 7 |
list1 = ['コーラ', 'オレンジジュース', 'コーヒー', 'ジンジャーエール'] list2 = reversed(list1) print('・reversed()使用前') print(list1) print('・reversed()使後') print(list(list2)) |
出力結果
・reversed()使用前
[‘コーラ’, ‘オレンジジュース’, ‘コーヒー’, ‘ジンジャーエール’]
・reversed()使用後
[‘ジンジャーエール’, ‘コーヒー’, ‘オレンジジュース’, ‘コーラ’]
list1をソートしたバージョンをlist2という変数に格納しています。
つまり、list1自体はそのままであるということです。
確かに、reverse()は元のリストを逆順に並び替えていますが、reversed()は逆順に並び替えられた新しいリストを作成していますね!
全く気がつきませんでした。
そうですね。
その為、revered()関数はリストの要素はまだしも、タプルの要素や辞書のキーと値、文字列の文字を逆順に並び替えることができます。
今回のポイント
reverse()でリスト(list)の要素を逆順に並べ替える
⚫︎ Pythonでリストの要素を逆順に並べ替えるにはreverse()やreversed()を使用する
⚫︎ reverse()は1次元リストだけでなく、2次元、3次元リストのような多次元リストの要素も逆順に並べ替えることができる
⚫︎ reversed()はリストだけでなくタプルの要素や辞書のキーと値、文字列の文字を逆順に並び替えることができる
⚫︎ reverse()とreverse()の違いは新しいリストを作るか作らないかである
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。