Python学習_初歩編_13 : ラムダ関数の使用

ラムダ関数とは名前を持たない無名関数です。メリットとしては、関数を引数に設定することが可能になる点があげられます。例えば、mapやsortの時、特別な動作をしたいけれど、わざわざ関数を定義しなくともかけます。処理が簡潔に書けることが魅力の一つです。

ラムダ関数と通常の関数の主な違いは、ラムダ関数は名前を持たず、無名関数であることです。通常の関数は、`def`キーワードを使って定義し、名前を持ちます。一方、ラムダ関数は、`lambda`キーワードを使って定義し、名前を持ちません。

また、ラムダ関数は、式として扱うことができます。つまり、ラムダ関数は、変数に代入したり、他の関数の引数として渡したりすることができます。

さらに、ラムダ関数は、1行で定義する必要があります。そのため、複雑な処理を行う場合は、通常の関数を使用する方が適している場合があります。

ラムダ関数は、`lambda`というキーワードを使って定義します。基本的な書き方は、`lambda 引数: 返り値`です。例えば、2つの引数を足し合わせるラムダ関数は次のように定義できます。

記述例:

add = lambda x, y: x + y
result = add(3, 5)
print(result) # 8
    

この例では、`add`という変数にラムダ関数を代入しています。ラムダ関数は、2つの引数`x`と`y`を取り、それらを足し合わせた結果を返します。そのため、`add(3, 5)`は8を返します。

具体的な使用例:

ラムダ関数は、特に他の関数の引数として関数を渡す際に便利です。例えば、`map()`関数は、第1引数に関数を取り、第2引数にリストを取ります。`map()`関数は、リストの各要素に対して第1引数に渡された関数を適用し、その結果を返します。


numbers = [1, 2, 3, 4]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers)) # [1, 4, 9, 16]

この例では、`map()`関数の第1引数にラムダ関数を渡しています。このラムダ関数は、引数`x`を取り、それを2乗した結果を返します。そのため、`map()`関数は、リスト`numbers`の各要素を2乗した結果である`[1, 4, 9, 16]`を返します。