プログラミング

Python 覚えておきたいテクニック <辞書型配列の配列でソート>

データを操作しているとよく遭遇するのが2次元的なデータの扱いではないでしょうか?Pythonで使いやすい方法として私はKeyを使った連想配列の配列を構成して運用しています。

この中の一つのキーワードの値を用いてソートする方法がなかなかググってもみつかりましせん。これを見つけたあなたはラッキーです。この手法は覚えておくとPythonでの武器が増えること間違えなし。

想定しているデータ列

元のデータがCSVやエクエルで下記のような構造になっていることがよくあると思います。

名前, 国語, 算数, 理科, 社会
太郎, 20, 30, 40, 20
二郎, 40, 50, 70, 75
紀子, 90, 90, 60, 90

このデータをPythonで扱う時によく用いる格納法としてKeyを用いてデータをラベル付けし、キー付きの辞書配列を作り、さらにその配列を配列にします。

ソートに使用するコマンド

このデータであるKEYをベースにソートするコマンド。

sorteditemgetterを組み合わせて使います。

testを構成する辞書型配列の中の kokugo の値を比較してソートをかけます。3つ目の reverse = True は降順(大きいものから並べる)にするために追加しています。昇順にするときは省略可能です。

結果は元の配列に変更を加えませんので結果を新しい変数に入力してお使いください。itemgetterを使えるようにするために最初にライブラリを用意してください。

from operator import itemgetter

上記のソースコードはそのまま使えます。データー操作に便利な使い方ですので是非身につけましょう。