PythonのLambda式は、無名関数(名前を持たない関数)を簡単に作成するためのシンタックスです。しかし、Lambda式は「文ではなくて式」なので、複数行は基本的にはできません。
しかし、戻り値を配列にすると、複数行の実行が可能になるようです。以下にその例を示します。
# 高階関数
def higher_order(func):
return func()
higher_order(lambda: [print("aaaa"), print("bbbb")])
# 実行結果
# aaaa
# bbbb
このように、Lambda式で複数行を実行することが可能です。ただし、難しい処理はしないで、print(“”)のように簡単な処理に限定して利用した方がよいと思われます。
また、引数を持つ場合も同様にLambda式で表現することができます。
# 高階関数
def higher_order(func, a, b):
return func(a, b)
aa = 1
bb = 10
(aa, bb) = higher_order(lambda x, y: [x + 1, y + x + 100], aa, bb)
print("aa = " + str(aa))
print("bb = " + str(bb))
# 実行結果
# aa = 2
# bb = 111
しかし、このような複数行を実行するLambda式はバグを発生させる可能性があるため、通常はコールバック関数を使って実装した方が良いとされています。
以上がPythonのLambda式で複数行を実行する方法についての説明です。この情報がPythonプログラミングに役立つことを願っています。.