sort()のlamdaって何者?
python3エンジニア認定基礎試験問題集に以下のようなコードの記載があります。
toshi_code = [(42, 'naga'), (41, 'saga'), (40, 'fuku'), (43, 'kuma')]
pref = toshi_code
pref.sort (key = lambda pref: pref[0])
print( pref)
>>>[(40, 'fuku'), (41, 'saga'), (42, 'naga'), (43, 'kuma')]
outputがなぜこうなるのかわからなかったので、公式ドキュメントを漁ってみました。
pref.sort(key=lambda pref: pref[0])の解説
まずはsort()の公式ドキュメントを確認します。
すると、このような記述が。
「list.sort() と sorted() には key パラメータがあります。 これは比較を行う前にリストの各要素に対して呼び出される関数 (または呼び出し可能オブジェクト) を指定するパラメータです。」
すなわち今回は、prefの要素ひとつひとつに対してlambda関数が適用されているようです。
(lambda関数がわからない方は、こちらを参照されて下さい。)
pref.sort (key = lambda pref: pref[0])
は、prefの各要素の0番目の要素でprefをsortするということになります。