この記事では、Python 関数プログラミングの詳細な分析 (コード例) を紹介します。一定の参考価値があり、必要な友人が参照することができます。お役に立てれば幸いです。
関数型プログラミング、関数型プログラミング。 Python は関数型プログラミングの部分的なサポートを提供します。純粋な関数型プログラミングの場合、どのような関数であっても、入力が確実である限り、出力も確実であり、副作用はないと言えます。
関数の計算結果は次のとおりであることがわかります。 x = abs(-5)
のように、変数に割り当てることができます。
同様に、変数は f = abs
などの関数を指すこともできます。
変数が関数を指している場合、abs(x)
を直接呼び出します。f(x)
を実行すると返される結果はまったく同じです。
関数名を abs()
などの変数とみなすこともできます。関数。ステートメント abs=-5
を実行してから abs(-5)
を呼び出すと、エラーが報告されます。これは、この時点では変数 abs
がもう存在しないためです。は絶対値関数を指しますが、代わりに整数 -5 を指します。
変数は関数を指すことができ、関数は変数としても機能するため、関数は別の関数を独自の形式のパラメータとして受け取ることができます。つまり、高階関数を実装します。例:
>>> def add(x , y , f ): # 把函数作为参数传入。 ... return f(x) + f(y) >>> add (-5,-2,abs) 7
構文:map(func,seq) は 2 つのパラメーターを受け取ります。1 つは関数 func で、もう 1 つは反復可能なオブジェクトです。
関数: 渡された func 関数をループ内の seq シーケンスの各要素に適用し、新しい反復可能なオブジェクトを返します。
Note:map() 関数は <map object>
を返します。list() 関数を使用して、結果はリスト形式で返されます。
例: map() を使用して f(x)=x*x
>>> def f(x): ... return x*x ... >>> map(f,[1,2,3,4,5]) <map object at 0x0327F670> >>> list(map(f,[1,2,3,4,5])) # 传入的函数f作用于序列的每个元素调并用list() [1, 4, 9, 16, 25]
を実装します。 もちろん、他のメソッドを使用してこれを実現することもできます。
exp1:list(map((lambda x:x*x),[1,2,3,4,5]))
exp2:[x の x*x [1,2, 3,4,5]]
構文: reduce(func,list)
、2 つのパラメータを受け入れる必要があります。
アクション: func
関数を list
シーケンス [x1,x2,x3, ...]
。シーケンス x1
と x2
の最初の 2 つの要素を取り出し、それを func
に適用し、a
などの単一の値を取得します。次に a
はシーケンス x3
の次の要素に対して func
操作を実行し、このプロセスを繰り返します。この効果は、reduce(f,x1,x2,x3)=f(f(x1,x2),x3)
Note# と同等です。 ##: reduce() を使用するには、モジュール
from functools import reduce
構文: filter(func,[sequence] )、「フィルター」関数とシーケンスを受け取ります。返されるのは、
Iterator 反復可能オブジェクトです。
Function: func ルールに従ってシーケンスをフィルターし、
filter()入力関数 ## を入力します。 #func
各要素に応じて動作し、戻り値 True
または False
に従って、対応する要素を True
として保持します。
: map() と同様に、filter()
は反復可能なオブジェクトを返すため、次のようにする必要があります。 list()
を使用して取得した結果を表示し、list
型を返します。
以上がPython関数プログラミングの詳細な分析(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。