ホームページ バックエンド開発 Python チュートリアル Python 3.x で関数プログラミングに functools モジュールを使用する方法

Python 3.x で関数プログラミングに functools モジュールを使用する方法

Jul 30, 2023 pm 04:41 PM
関数型プログラミング python x functools

Python 独自の functools モジュールは、関数型プログラミング用のツール関数を多数提供します。コードをより簡潔で読みやすくし、関数プログラミング用の高次関数と基本ツールを提供します。この記事では、functools モジュールのいくつかの一般的な関数を紹介し、コード例を示します。

  1. partialFunction

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 および tripledouble 関数が呼び出されると、実際には multiply(2, 4) が呼び出され、結果 8 が返されます。

  1. 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を返します。

  1. mapFunction

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
  1. 関数
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

モジュールが提供する関数を使用すると、より簡潔で読みやすいコードを使用して関数型プログラミングのアイデアを実装できます。上で紹介した

partialreducemapfilter は、functools モジュールでより一般的に使用される関数です。 . 実際のプロジェクトに適用することができます。

以上がPython 3.x で関数プログラミングに functools モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Go 言語で関数型プログラミングとラムダ式をマスターする Go 言語で関数型プログラミングとラムダ式をマスターする Nov 30, 2023 am 10:46 AM

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

C++ の関数型プログラミング手法 C++ の関数型プログラミング手法 Aug 22, 2023 am 10:36 AM

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

urllib.parse.unquote() 関数を使用して Python 3.x で URL をデコードする方法 urllib.parse.unquote() 関数を使用して Python 3.x で URL をデコードする方法 Aug 02, 2023 pm 02:25 PM

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

Python ラムダ式: 省略、簡潔、強力 Python ラムダ式: 省略、簡潔、強力 Feb 19, 2024 pm 08:10 PM

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 で数学演算を実行する方法 math モジュールを使用して Python 3.x で数学演算を実行する方法 Aug 01, 2023 pm 03:15 PM

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

Python 2.x でコードのデバッグに pdb モジュールを使用する方法 Python 2.x でコードのデバッグに pdb モジュールを使用する方法 Aug 01, 2023 pm 12:05 PM

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

関数プログラミングに C++ ラムダ式を使用する利点は何ですか? 関数プログラミングに C++ ラムダ式を使用する利点は何ですか? Apr 17, 2024 am 10:18 AM

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

他の関数型プログラミング言語と比較した Java 関数の長所と短所は何ですか? 他の関数型プログラミング言語と比較した Java 関数の長所と短所は何ですか? Apr 24, 2024 pm 02:51 PM

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

See all articles