注目キーワード

【Python】配列のソート方法まとめ(昇順・降順・多次元配列のソート)

はじめに

この記事では、Pythonの配列をソートする方法についてフォーカスを当てていきます。具体的には配列の昇順・降順のソート、多次元配列のソートです。それでは最初に昇順のソートについて見ていきましょう。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

配列を昇順にソート

始めに配列の昇順のソートです。サンプルソースでは5行目が該当の処理です。「配列.sort()」と記述すると、配列の要素が昇順にソートされます。以下の実行結果でも正しくソートされていることが分かりますね。

配列.sort()
配列の昇順ソート実行結果

おまけ・配列の並び替え(逆順)

実際にプログラムを動かす前は「 reverse 」が降順ソートだと思っていたのですが、実際に動かしてみると「reverse」は配列の並び順を逆順にしていることが分かりました。下のサンプルソースの5行目が該当処理で配列を逆順にしている処理です。実行結果をみると配列の一番後ろの要素が一番最初に出力されています。

配列.reverse()
配列の並び替え逆順実行結果

配列を降順にソート

次に降順のソートについてです。こちらもsortメソッドを使いますがパラメータの「 reverse」を「 True 」に設定します。下のサンプルソースでいうと5行目の「 list.sort(reverse=True) 」が該当処理になります。実行結果でも正しく降順にソートされていることがわかります。

配列.sort(reverse=True) 
配列の降順ソート実行結果

おまけ・reverseを使った降順ソート

これは、「sort」と先ほどの「おまけ・配列の並び替え(逆順)」を使って配列を降順にする方法です。ステップ数が増えるのであまりイケてないのですが一応ご紹介します。

まず、下のサンプルソースの5行目「 list.sort() 」で昇順にソートします。そして、7行目の「 list.reverse() 」で昇順だった配列を逆順にすることで降順のソートを行います。

sortとreverseを使った降順ソートの実行結果

多次元配列のソート

多次元配列のソートを行う際は、「itemgetter」を使います。まず初めに 「itemgetter」 が使えるようにimportします。下のサンプルソースの2行目「 from operator import itemgetter 」が該当処理です。この処理を追加しないと以下のエラーが起きるので気を付けてください。

スポンサーリンク

NameError: name 'itemgetter' is not defined

「配列.sort(key=itemgetter(n番目))」で多次元配列のソートができます。下の実行結果を見ると。0番目のソートでは「100,200,300」でソートされており。1番目のソートでは1番目の要素が「40,50,60」とソートされています。2番目も同様に正しくソートされています。

from operator import itemgetter 配列.sort(key=itemgetter(n番目))
多次元配列のソートの実行結果

まとめ

今回の記事ではPythonの配列のソートについてフォーカスをあてて学習しました。

配列を昇順にソートするときは 「配列.sort()」、降順の場合は 「配列.sort(reverse=True) 」を使う。

配列を逆順に並び替えしたいときは「配列.reverse()」を使う。

多次元配列のソートには「 itemgetter 」をインポートする。ソートは 「配列.sort(key=itemgetter(n番目))」 で行う。