それっぽい技術メモ

UNIXからpythonまで、技術系メモ。知識は人類の共有財産です。

python で2次元配列をソート

python + flask で2次元配列ってあんまりはやらないのか、情報が少なくて困る。

listで2次元配列を作って、昇順・降順を織り交ぜてソートする場合の手順。
excelなら簡単なのにね。

データはこんな感じを想定。
f:id:kopumin:20200615220117p:plain

で、第3ソートまでしたいとします。

  • 第1ソート:山の数 昇順
  • 第2ソート:川の数 昇順
  • 第3ソート:池の数 降順

pythonで昇順と降順は同時にソートできないので、ソートは2回に分けてます。
ポイントは、itemgetterをつかうところ。

from operator import itemgetter

#表の中身を2次元配列に格納
my_list =[ [東京,120,23,3643], [神奈川,84,43,2209], [神奈川,84,43,2209], [埼玉,161,12,2899], [千葉,43,22,659], [茨城,33,34,859], [山梨,366,68,1555]]

#1回目のソート(第1キー、第2期キー)
my_sorted_list = sorted(my_list, key=itemgetter(1,2))
sorted(my_sorted_list, key=itemgetter(3), reverse=True)

print(my_sorted_list)