ホームページ  >  記事  >  バックエンド開発  >  Python関数プログラミングの詳細な分析(コード例)

Python関数プログラミングの詳細な分析(コード例)

不言
不言オリジナル
2018-09-18 15:27:111654ブラウズ

この記事では、Python 関数プログラミングの詳細な分析 (コード例) を紹介します。一定の参考価値があり、必要な友人が参照することができます。お役に立てれば幸いです。

関数型プログラミング、関数型プログラミング。 Python は関数型プログラミングの部分的なサポートを提供します。純粋な関数型プログラミングの場合、どのような関数であっても、入力が確実である限り、出力も確実であり、副作用はないと言えます。

1. 高階関数

1. 変数は関数を指します

関数の計算結果は次のとおりであることがわかります。 x = abs(-5) のように、変数に割り当てることができます。
同様に、変数は f = abs などの関数を指すこともできます。
変数が関数を指している場合、abs(x) を直接呼び出します。f(x) を実行すると返される結果はまったく同じです。

2. 関数名も変数です

関数名を abs() などの変数とみなすこともできます。関数。ステートメント abs=-5 を実行してから abs(-5) を呼び出すと、エラーが報告されます。これは、この時点では変数 abs がもう存在しないためです。は絶対値関数を指しますが、代わりに整数 -5 を指します。

3. 仮パラメータとしての関数

変数は関数を指すことができ、関数は変数としても機能するため、関数は別の関数を独自の形式のパラメータとして受け取ることができます。つまり、高階関数を実装します。例:

>>> def add(x , y ,  f ): # 把函数作为参数传入。
...     return f(x) + f(y)
>>> add (-5,-2,abs)
7

2. 関数型プログラミングの組み込み関数

1.map(func,seq)

  • 構文: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]]

2.reduce(func,list)

  • 構文: reduce(func,list)、2 つのパラメータを受け入れる必要があります。

  • アクション: func 関数を list シーケンス [x1,x2,x3, ...]。シーケンス x1x2 の最初の 2 つの要素を取り出し、それを func に適用し、a などの単一の値を取得します。次に a はシーケンス x3 の次の要素に対して func 操作を実行し、このプロセスを繰り返します。この効果は、reduce(f,x1,x2,x3)=f(f(x1,x2),x3)

  • Note# と同等です。 ##: reduce() を使用するには、モジュール from functools import reduce

をインポートする必要があります。遊ぶための栗を見つけることができます。 ~~ ~

3.filter()

  • 構文: filter(func,[sequence] )、「フィルター」関数とシーケンスを受け取ります。返されるのは、Iterator 反復可能オブジェクトです。

  • Function: func ルールに従ってシーケンスをフィルターし、filter()入力関数 ## を入力します。 #func 各要素に応じて動作し、戻り値 True または False に従って、対応する要素を True として保持します。

  • Note

    : map() と同様に、filter() は反復可能なオブジェクトを返すため、次のようにする必要があります。 list() を使用して取得した結果を表示し、list 型を返します。

  • 例: リストで偶数を削除し、奇数を残します。
rreeee

以上がPython関数プログラミングの詳細な分析(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。