Python 3.x で関数プログラミングに functools モジュールを使用する方法
Python 独自の functools
モジュールは、関数型プログラミング用のツール関数を多数提供します。コードをより簡潔で読みやすくし、関数プログラミング用の高次関数と基本ツールを提供します。この記事では、functools
モジュールのいくつかの一般的な関数を紹介し、コード例を示します。
-
partial
Function
partial
関数は、関数を部分的に適用するために使用されます。つまり、関数の一部のパラメーターを修正します。関数を呼び出して新しい関数を返します。サンプル コードは次のとおりです。
from functools import partial def multiply(x, y): return x * y double = partial(multiply, 2) triple = partial(multiply, 3) print(double(4)) # 输出8 print(triple(4)) # 输出12
上記のコードでは、partial
関数は、multiply
関数の最初のパラメータを 2 または 3 に固定し、新しい値を返します。関数double
および triple
。 double
関数が呼び出されると、実際には multiply(2, 4)
が呼び出され、結果 8 が返されます。
reduce
関数
reduce
関数は、シーケンス内の要素に対して累積計算を実行し、単一の結果。この関数は、from functools import reduce
を介してインポートする必要があります。サンプル コードは次のとおりです。
from functools import reduce def add(x, y): return x + y numbers = [1, 2, 3, 4, 5] result = reduce(add, numbers) print(result) # 输出15
上記のコードでは、reduce
関数が add
関数をシーケンス numbers## の要素に適用します。 #、左から右へ順番に累積加算し、最終結果の15を返します。
- map
Function
map関数は、シーケンス内の各要素に関数を適用し、新しいシーケンス。サンプル コードは次のとおりです。
def square(x): return x ** 2 numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(square, numbers)) print(squared_numbers) # 输出[1, 4, 9, 16, 25]
map 関数が
square 関数をシーケンス
numbers## の各要素に適用します。 # そして新しいシーケンス squared_numbers
を返します。
- filter
- 関数
この関数は、シーケンス内の各要素に条件判定関数を適用するために使用されます。条件を満たす新しい要素のシーケンスを返します。サンプル コードは次のとおりです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # 输出[2, 4]</pre><div class="contentsignin">ログイン後にコピー</div></div> 上記のコードでは、filter<p> 関数が <code>is_even
関数をシーケンス numbers## の各要素に適用します。 # そして、条件を満たす要素のみを含む新しいシーケンス
even_numbers を返します。
functools
partial、
reduce、
map、
filter は、
functools モジュールでより一般的に使用される関数です。 . 実際のプロジェクトに適用することができます。
以上がPython 3.x で関数プログラミングに functools モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











現代のプログラミングの世界では、関数型プログラミング (略して FP) が徐々に人気のあるプログラミング パラダイムになってきています。それは、プログラムを構築するための基本的な構成要素として関数を使用することを強調し、計算プロセスを関数間の継続的な転送と変換と見なします。近年、Go 言語 (Golang とも呼ばれます) は、そのシンプルさ、効率性、同時実行の安全性などの特性により、さまざまな分野で徐々に広く使用されています。 Go 言語自体は純粋な関数型プログラミング言語ではありませんが、十分な機能を提供します。

C++言語には優れたプログラミング手法が数多くありますが、その中でも関数型プログラミングは非常に実用的な技術です。関数型プログラミングは関数の再利用性と柔軟性を重視しており、これによりコードがより明確になり保守しやすくなります。この記事では、C++ の関数型プログラミング手法を紹介します。 1. 関数オブジェクト 関数オブジェクトは、関数とみなすことができる呼び出し可能なオブジェクトです。 C++ の関数オブジェクトは、クラス オブジェクトまたは関数ポインターにすることができます。関数オブジェクトは STL アルゴリズムで使用でき、他の関数のパラメーターとしても使用できます。ここでは簡単な

Python 3.x で urllib.parse.unquote() 関数を使用して URL をデコードする方法。Python の urllib ライブラリでは、urllib.parse モジュールは URL エンコードとデコードのための一連のツール関数を提供します。その中には urllib.parse.unquote があります。 () 関数を使用して URL をデコードできます。この記事ではurllib.parse.unの使い方を紹介します。

pythonLambda 式は、簡潔で読みやすく、使いやすいコードを作成するための強力で柔軟なツールです。これらは、他の関数に引数として渡したり、変数に保存したりできる匿名関数をすばやく作成するのに最適です。 Lambda 式の基本構文は次のとおりです。 lambdaarguments:expression たとえば、次の Lambda 式は 2 つの数値を加算します: lambdax,y:x+y この Lambda 式は、次のように引数として別の関数に渡すことができます。 defsum( x ,y):returnx+yresult=sum(lambdax,y:x+y,1,2) この例では

math モジュールを使用して Python 3.x で数学的演算を実行する方法 はじめに: Python プログラミングでは、数学的演算を実行することが一般的な要件です。数学演算の処理を容易にするために、Python は数学ライブラリを提供します。このライブラリには、数学計算および数学関数用の多くの関数と定数が含まれています。この記事では、math モジュールを使用して一般的な数学演算を実行する方法を紹介し、対応するコード例を示します。 1. 基本的な数学演算の加算は、math モジュールの関数 math.add() を使用して実行されます。

Python2.x でコードをデバッグするために pdb モジュールを使用する方法 はじめに: ソフトウェア開発プロセスでは、プログラム エラー、期待を満たさない変数値、予期しない結果などの問題に遭遇することがよくあります。これらの問題を解決するには、コードをデバッグする必要があります。 Python には強力な pdb (Pythondebugger) モジュールが用意されており、問題を迅速に特定してデバッグするのに役立ちます。この記事では、Python2.x でコードをデバッグするための pdb モジュールの使用方法を紹介し、添付します。

C++ ラムダ式は、関数型プログラミングに次のような利点をもたらします。 シンプルさ: 匿名インライン関数により、コードの可読性が向上します。コードの再利用: コードの再利用を容易にするために、ラムダ式を渡したり保存したりできます。カプセル化: 別の関数を作成せずにコードの一部をカプセル化する方法を提供します。実際のケース: リスト内の奇数をフィルタリングします。リスト内の要素の合計を計算します。ラムダ式は、関数型プログラミングの簡素化、再利用性、カプセル化を実現します。

Java 関数型プログラミングの利点には、単純さ、構成可能性、同時実行性、テストのしやすさ、パフォーマンスなどがあります。欠点としては、学習に時間がかかること、デバッグが難しいこと、柔軟性が限られていること、パフォーマンスのオーバーヘッドが挙げられます。その主な機能には、副作用のない純粋な関数、データ処理パイプライン、ステートレス コード、効率的なストリーミング API が含まれます。
