Python-ラムダ関数

参考学習:Liao Xuefengpythonの公式ウェブサイト

最初に関数map()を導入します

**map()**は、提供された関数に従って指定されたシーケンスをマップします。

最初のパラメータ関数は、パラメータシーケンスの各要素を使用して関数関数を呼び出し、各関数関数の戻り値を含む新しいリストを返します。

構文:map(function、iterable、...)

パラメータ

(新人チュートリアルを参照してください)

>>> def square(x):            #二乗数を計算する
... return x **2...>>>map(square,[1,2,3,4,5])   #リストの各要素の二乗を計算します
[1,4,9,16,25]>>> map(lambda x: x **2,[1,2,3,4,5])  #ラムダ匿名関数を使用する
[1,4,9,16,25]
 
# 同じ位置にリストデータを追加するために、2つのリストが用意されています
>>> map(lambda x, y: x + y,[1,3,5,7,9],[2,4,6,8,10])[3,7,11,15,19]

ラムダ匿名関数の導入を開始

関数を渡す場合、関数を明示的に定義する必要がない場合があり、匿名関数を直接渡す方が便利です。 Pythonでは、匿名関数のサポートが制限されています。例として map()関数を取り上げます。f(x)= x2を計算する場合、 f(x)の関数を定義することに加えて、

匿名関数を直接渡すこともできます。

>>> list(map(lambda x: x * x,[1,2,3,4,5,6,7,8,9]))[1,4,9,16,25,36,49,64,81]

比較すると、匿名関数 lambda x:x * xは実際には次のようになっていることがわかります。

def f(x):return x * x

キーワード lambdaは匿名関数を表し、コロンの前の xは関数パラメーターを表します。

匿名関数には制限があります。つまり、 returnを記述せずに、式は1つしか存在できず、戻り値は式の結果です。

関数には名前がないため、匿名関数を使用する利点があります。したがって、関数名の競合について心配する必要はありません。さらに、匿名関数は関数オブジェクトでもあります。匿名関数を変数に割り当ててから、その変数を使用して関数を呼び出すこともできます。

>>> f = lambda x: x * x
>>> f
< function<lambda> at 0x101c6ef28>>>>f(5)25

同様に、匿名関数も次のような戻り値として返すことができます。

def build(x, y):return lambda: x * x + y * y

匿名関数の演習例:

( この関数をラムダ式に変更します)

def is_odd(n):return n %2==1

L =list(filter(is_odd,range(1,20)))

変更後のラムダ

Recommended Posts

Python-ラムダ関数
Python enumerate()関数
Python関数バッファー