python lambda(ラムダ)

ラムダは無名関数を定義することが出来る。

書き方

lambda 引数: 処理

与えられた2つのパラメータを合計して返す無名関数

add = lambda a, b: a + b

c = add(1, 2)
print(c)   # c = 3

無名関数の話をすると、「どういう時に使うのか?どんなメリットがあるのか?」と聞かれ、「関数にするほどでもない処理を書く時」ってお決まりの回答があるけど、僕の場合は、主にパラメータに関数を渡すことの出来る関数(map関数やsorted関数など)コール時に、ちょっとした処理を行いたい時などに使用するかな。

逆に、それ以外ではあまり使わない(良い使い方を知らないだけ)。
上記の例では、関数名は持たないかもしれないけど、処理を一旦addという変数に格納して、使用する時は結局add(1, 2)という風に書くのであまりメリットを感じられない。

それなら以下のように、即時関数(pythonでそう呼ぶのか分からないけど。。。)のような使い方にすれば、変数に入れることなく、直接結果が返ってきて即席使い捨ての関数で意味があるような気がする。

c = (lambda a, b: a + b)(1, 2)
print(c)   # c = 3

ちなみに、パラメータ無くてもOK

func = lambda: 'hello'
func()
'hello'

(lambda: 'hello')()
'hello'

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です