Python リストのソートの仕方

機械学習の勉強にPythonを使ってるんですが,ちょっとしたデータ処理したりするの,めっちゃ使いやすいですね.
結構大きいデータ使ってるんですが,そこそこの速度で動いてくれるし.

ちょっと,Pythonのリストをソートする方法を調べてたんですが,備忘録としてメモしておきます.

例えば,名簿のリストがあったとします.
デフォルトでは,アルファベット順で並んでますが,同時に各人の身長のデータも持っていて,身長順にリストをソートしたいとします.
この時には,sorted関数を使えます.

['crues', 'hanks', 'mike', 'samp', 'tifanny', 'tom']

下記,名前が与えられたらその人の身長を返すメソッドだとします.

def orderFunc(k):
    
    if (k == "sam"):
        return 175
    elif (k == "mike"):
        return 180
    elif (k == "tom"):
        return 150
    elif (k == "hanks"):
        return 175
    elif (k == "crues"):
        return 190
    elif (k == "tifanny"):
        return 200
        
    return 0

で,上記のメソッドの名前を sorted 関数に渡してあげます.

In [180]: sorted(namelist, key=orderFunc, reverse=True)
Out[180]: ['tifanny', 'crues', 'mike', 'hanks', 'sam', 'tom']

めっちゃ便利ですね...