Pythonのラムダ式の使い方はなんですか?
Python のラムダ関数と呼ばれる匿名関数は、名前がない関数のことだ。通常、シンプルな関数が必要で、それらに名前を付けたくない場合に使用される。
匿名関数の構文は次のとおりです。
lambda パラメーターリスト: 式
関数の引数となる関数の引数リストは、0個以上の引数を含み、式は関数の戻り値の計算式となる。
匿名関数の利用場面として、以下のようなものがあります。
- 関数の引数として渡す: 関数が他の関数の引数として渡すことができ、それは map()、filter()、reduce() のような関数で使用されます。
- 簡潔なコード: 関数が1か所でのみ使用され、関数本体が非常に単純な場合、完全な関数を定義するのを避けるために匿名関数が使用できます。
- 匿名関数は別の関数の戻り値として利用することができ、柔軟な関数の戻りを実現できます。
以下に例を挙げます:
- 匿名関数をmap()関数の引数として渡し、リスト内の各要素を2乗する:
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # 输出:[1, 4, 9, 16, 25]
- 条件フィルターに匿名関数を使用して、5 より大きい要素を抽出します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
greater_than_five = filter(lambda x: x > 5, numbers)
print(list(greater_than_five)) # 输出:[6, 7, 8, 9]
- 数値 2つ加算する匿名関数返す:
def get_sum_function():
return lambda x, y: x + y
sum_function = get_sum_function()
print(sum_function(3, 4)) # 输出:7
匿名関数は、簡単な関数を簡潔に定義する方法を提供し、コードの可読性と簡潔性を向上させます。ただし、匿名関数は機能が制限されており、複雑なロジックや複数行のコードを使用する用途には適していません。