Python – ラムダ(無名)関数

programing
Portrait of beautiful Asian woman looking happy exploring city alone. Pretty Japanese girl enjoying good day outdoors

次のPythonのコードを解説します。

func = lambda a, b: (b + 1, a * 2) 
x, y = 1, 2
x, y = func(x, y)
print(x, y)

このコードの機能を段階ごとに詳しく説明します。

まず、最初の行から説明しましょう。

func = lambda a, b: (b + 1, a * 2)

これはラムダ(無名)関数の定義です。lambdaキーワードは、短い(一行の)関数を定義するための特別なPython構文です。このラムダ関数は2つの引数 ab を取り、タプル (b + 1, a * 2) を返します。つまり、この関数は最初の引数を2倍にし、二つ目の引数に1を足すという操作を行います。この関数を func という名前で保存しています。

次に、以下の行を見てみましょう。

x, y = 1, 2

この行では、xy という2つの変数にそれぞれ1と2の値を代入しています。これはPythonの多重代入という特性を利用したものです。

続いての行です。

x, y = func(x, y)

ここでは、先程定義した func 関数を使用しています。引数に xy を渡し、その結果を再び xy に代入しています。func(x, y) の呼び出し結果は (y + 1, x * 2) (すなわち (2 + 1, 1 * 2) もしくは (3, 2))になるので、その結果が xy に順に代入されます。そのため、この行の後では x の値は3、 y の値は2となります。

最後に、以下の行を見てみましょう。

print(x, y)

この行は、xy の値をコンソールに表示します。前述の通り、これらの変数の値はそれぞれ3と2なので、このコードを実行すると “3 2” という結果が出力されます。

以上がこのコードの詳細な解説です。

コメント

タイトルとURLをコピーしました