Pythonで複数行を含むラムダ式の使い方と例


  1. 複数行のラムダ式の基本構文

複数行のラムダ式を作成するには、次のような構文を使用します。

lambda 引数: (
    行1のコード,
    行2のコード,
    ...
    行nのコード
)

注意点として、最後の行の結果がラムダ式の戻り値となります。

  1. 複数行のラムダ式の例

以下に、いくつかの具体的な例を示します。

例1: 複数行の計算を行うラムダ式

add_numbers = lambda x, y: (
    x + y,
    x - y,
    x * y
)
result = add_numbers(5, 3)
print(result)  # (8, 2, 15)

この例では、add_numbersという名前の複数行のラムダ式を定義しています。与えられた2つの数値を加算、減算、乗算して、タプルとして返しています。

例2: 条件分岐を含む複数行のラムダ式

check_even = lambda x: (
    "Even" if x % 2 == 0 else "Odd",
    x  2 if x % 2 == 0 else x  3
)
result = check_even(4)
print(result)  # ("Even", 16)
result = check_even(3)
print(result)  # ("Odd", 27)

この例では、与えられた数値が偶数か奇数かを判定し、その結果と数値の2乗または3乗をタプルとして返しています。

  1. ラムダ式を他の関数に渡す

複数行のラムダ式は、他の関数に引数として渡すこともできます。以下に例を示します。

def process_data(data, action):
    result = action(data)
    # 結果を処理するコード
    return result
data = [1, 2, 3, 4, 5]
result = process_data(data, lambda x: (
    sum(x),
    len(x)
))
print(result)  # (15, 5)

この例では、process_dataという関数を定義しています。この関数は、データとアクション(複数行のラムダ式)を受け取り、結果を返します。ここでは、与えられたリストの合計と要素数を返すアクションを指定しています。

以上が、Pythonで複数行を含むラムダ式を使用する方法といくつかのコード例です。これを参考にして、自身のコードに応用してみてください。