python で2次元配列をソート
python + flask で2次元配列ってあんまりはやらないのか、情報が少なくて困る。
listで2次元配列を作って、昇順・降順を織り交ぜてソートする場合の手順。
excelなら簡単なのにね。
データはこんな感じを想定。
で、第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)