Pythonのlambda
関数は、小規模な匿名関数を一行で定義するための構文です。また、引数を複数用いることもできますし、可変長引数やキーワード引数の受付も可能です。
例えば、以下のようにlambda
関数を使用して、2つの引数を受け取り、その和を返す関数を作成することができます。
f = lambda x, y: x + y
print(f(1, 2)) # 出力: 3
また、lambda
関数は他の関数の引数として用いることで真価を発揮します。例えば、sorted
関数のkey
引数としてlambda
関数を用いることがあります。
さらに、lambda
関数は、引数の数が異なる関数をそれぞれ同一関数の引数として渡す場合にも利用できます。以下にその例を示します。
# 引数なし関数
def print_type1():
print('print_type1を処理中・・・')
return '[print_type1]'
def print_com(func):
print('=== print_comを処理中・・・ ===')
rtn = func() # 利用する際、渡す関数には引数なし
print('{}を処理しました。 '.format(rtn))
print()
print_com(print_type1) # 問題なく動作します
# 引数あり関数
def print_type2(day):
print('print_type2を処理中・・・')
print('day: {}'.format(str(day)))
return "print_type2"
# lambdaで引数なし関数に変更してから、渡せば動作します。
day = 15
print_com(lambda: print_type2(day))
このように、lambda
関数はPythonの強力な機能の一つであり、その理解と活用はPythonプログラミングの効率を大いに向上させることができます。