pythonにおけるlambda式の簡単な応用
7397 ワード
pythonにおけるlambda式の簡単な応用
Lambda式
Pythonでは、lambda式で簡単な機能を定義することができます.この関数は名前がないことを実現するだけなので、匿名関数と呼ばれています.
Lambda式の書き方は以下の通りです.
上記の式を使用して、いくつかのパラメータを受け入れる匿名関数を定義します.パラメータはコロンの前(
例を挙げます.
このlambda式は、パラメータ
上記の例を観察すると、lambda式には
機能的には、
一般的に、
先ほど書いた関数
その
以前、組み込み関数について話したとき、ソート関数
Lambda式
Pythonでは、lambda式で簡単な機能を定義することができます.この関数は名前がないことを実現するだけなので、匿名関数と呼ばれています.
Lambda式の書き方は以下の通りです.
lambda 1, 2, N:
上記の式を使用して、いくつかのパラメータを受け入れる匿名関数を定義します.パラメータはコロンの前(
:
)、複数のパラメータはカンマで区切られ、コロンの後(:
)に書き込まれます.例を挙げます.
f = lambda x: x ** 2
このlambda式は、パラメータ
x
を受け入れ、x ** 2
の計算結果を返す匿名関数を定義する.同時に、付与文は、この匿名関数を変数f
に付与する.注意f
は、関数結果ではなく関数を保存します.>>> f
<function at 0x10bcba0d0>
>>> f(4)
16
>>> f(9)
81
上記の例を観察すると、lambda式には
return
キーワードはありませんが、結果は返されます.はい、匿名関数の
の実行結果は、return
キーワードを使用する必要がなく、その戻り値として使用されます.機能的には、
lambda x: x ** 2
は、def no_name(x):
return x ** 2
>>> no_name(4)
16
一般的に、
f = lambda x: x ** 2
のように匿名関数を変数に直接付与し、この変数を使用することはありません.関数をパラメータとして使用する必要がある場合にlambda式を使用するので、関数呼び出しの前に別の関数を定義する必要はありません.先ほど書いた関数
filter_nums
のようにdef filter_nums(nums, want_it):
return [n for n in nums if want_it(n)]
その
want_it
パラメータは関数である必要があり、lambda式で問題を簡単に解決することができます.このように使用できます.>>> filter_nums([11, 12, 13, 14, 15, 16, 17, 18], lambda x: x % 2 == 0)
[12, 14, 16, 18]
以前、組み込み関数について話したとき、ソート関数
sorted()
を紹介しました.複雑な要素をソートするときに、ソートに使用するフィールドを指定するパラメータkey
があります.このパラメータは関数であり、lambda式で解決することができます.>>> codes = [(‘ ’, ‘021’), (‘ ’, ‘010’), (‘ ’, ‘028’), (‘ ’, ‘020’)]
>>> sorted(codes, key=lambda x: x[1]) #
[(‘ ’, ‘010’), (‘ ’, ‘020’), (‘ ’, ‘021’), (‘ ’, ‘028’)]