Select Language

AI Technology Community

3.5、Python lambda式(匿名関数)の使い方

ラムダ関数は特殊な関数で、1文しか含めないため、複雑なタスクを完了することは難しい。また、一般的にラムダ関数は一時的なもので、長期間存在せず、大きな範囲で有効になることもない。

ラムダ関数を定義する方法は次の通りです:

lambda パラメータリスト: 単一行の文

簡単な例として、合計を求める関数は次のように定義できます:

lambda x, y: x + y

多くの場合、ラムダ関数は匿名関数として使用されますが、その値を変数に代入することもできます。この場合、通常の関数に似ていますが、関数本体は1文だけです。以下にその使い方を示します。

>>> a = lambda x, y: x + y
>>> type(a)
<class 'function'>
>>> a
<function <lambda> at 0x00000000002974378>
>>> a(1, 2)
3


関数を使用できるすべての場所でラムダ関数を使用できます。たとえば、関数型プログラミングやクロージャなどの場面です。以下に2つの応用例を示します。

ソート関数 sorted() には、key というパラメータがあり、このパラメータには関数が必要です。この関数はすべての要素に対して呼び出され、返された値がソートされます。最も簡単な使い方は、関数を定義して、それを key パラメータとして sorted() 関数に渡すことです。

以下は最も簡単な例で、この新しく定義された関数は入力を何も処理せずにそのまま返します。つまり、f(x) = x です。

>>> a = [-1, 2, -8, 10]
>>> sorted(a, key = lambda x: x)
[-8, -1, 2, 10]

入力要素の絶対値でソートしたい場合は、key パラメータを次のように定義できます:

>>> a = [-1, 2, -8, 10]
>>> sorted(a, key = lambda x: abs(x))
[-1, 2, -8, 10]

要素と8の差でソートしたい場合は、key パラメータを次のように定義できます:

>>> a = [-1, 2, -8, 10]
>>> sorted(a, key = lambda x: abs(x - 8))
[10, 2, -1, -8]

ここで注意すべきは、ラムダ関数は関数の特殊なケースであり、ラムダ関数を使用できるすべての場所で通常の関数を使用して代替できることです。


post
Pythonの関数
2021-12-10 23:42:59join communtity
  • 6

    item of content
関数はコードの基本的なモジュールであり、特定の機能を実現し、他のコードから利用することができます。関数を使うことでコードのモジュール性が向上し、コードの組織化がより効率的になり、共同開発が促進されます。
現代のソフトウェア開発言語はすべて関数をサポートしており、関数をコードの最も基本的な単位と考えることができます。たとえ最もシンプルな「Hello, Python」コードでも、print() 関数の呼び出しに関数が関わっています。
この章では、関数の基本概念と使用方法について紹介します。具体的には、Pythonの関数の定義と使用方法、関数パラメータの使い方、よく使用される組み込み関数、そしてlambda関数や再帰に関する内容を含みます。