関数 中級

45. lambda(無名関数)と簡潔な関数

lambdaとは

defを使った関数定義は、名前を付けてきちんと保存しておく、いわば「常備品」の関数です。それに対してlambdaは、名前を付けずにその場限りで使い捨てる、簡単な関数を1行で作るための書き方です。lambda 引数: 式という形で書き、後で紹介するsorted()やmap()、filter()などに「ちょっとした処理」を渡したいときによく使われます。

サンプルコード

add = lambda a, b: a + b
print(add(3, 5))

numbers = [3, 1, 4, 1, 5]
sorted_numbers = sorted(numbers, key=lambda x: -x)
print(sorted_numbers)
1つ目はlambdaを変数addに代入して、通常の関数のように呼び出す例です。2つ目はsorted()のkey引数にlambdaを渡し、「マイナスをつけた値」を基準に並び替えることで、結果的に降順にしています。

📝 練習問題

練習問題:lambdaを使って2つの数の大きい方を返す関数biggerを作り、biggerを使って比較してください。