投稿日: Jun 15, 2019 10:25:31 AM
Pythonの場合ソートは標準機能で出来るのです。
じゃあいくつかの値がまとまったようなデータをある列をキーにしてソートするには?
これまた普通にソート出来るのでした。
2次元の配列としてデータをもっているとします
>>> data = [ [5,2,3],[1,5,0],[8,1,2] ]
>>> soted(data)
[[1, 5, 0], [5, 2, 3], [8, 1, 2]]
各行1番目の列をキーとしてソートされました。
例えば3番目の列をキーにしてソートしたい場合。
>>> from operator import itemgetter
>>> sorted(data, key=itemgatter(2))
[[1, 5, 0], [8, 1, 2], [5, 2, 3]]
こんな感じでkeyを指定することで可能でした。
オペレーターモジュールにあるitemgetterというのを使うのが簡単ということですがラムダ式でもできるそうですよ。
昇順でソートされていますが、これを降順にするにはこうします。
>>> sorted(data,key=itemgetter(2), reverse=True)
[[5, 2, 3], [8, 1, 2], [1, 5, 0]]