Python の Lambda 関数は、小さな匿名関数をその場で作成する強力な方法です。これらの関数は通常、完全な関数定義のオーバーヘッドが不要な、短くて単純な操作に使用されます。
従来の関数は def キーワードを使用して定義されますが、Lambda 関数は lambda キーワードを使用して定義され、コード行に直接統合されます。特に、組み込み関数の引数としてよく使用されます。これらにより、開発者は一時的な関数定義の必要性がなくなり、クリーンで読みやすいコードを作成できるようになります。
この記事では、Lambda 関数の機能とその構文について説明します。また、それらを使用するための例とベスト プラクティスをいくつか示し、その長所と短所についても説明します。
Lambda 関数はバージョン 2.0 以降 Python の一部となっているため、次のものが必要です。
このチュートリアルでは、高速、強力、柔軟で使いやすいオープンソースのデータ分析および操作ライブラリである Pandas ライブラリで Lambda 関数を使用する方法を説明します。インストールしていない場合は、次を実行します:
pip install pandas
まず、開発者が Lambda 関数を作成するために使用する必要がある構文を定義しましょう。
Lambda 関数は、lambda キーワードを使用して定義され、その後に 1 つ以上の引数と式が続きます。
lambda arguments: expression
2 つの数値を加算する Lambda 関数を作成すると想像してみましょう。
add = lambda x, y: x + y
次を実行します:
result = add(3, 5) print(result)
これにより、次の結果が得られます:
8
2 つの引数 x と y を取る匿名関数を作成しました。従来の関数とは異なり、Lambda 関数には名前がありません。それが、Lambda 関数が「匿名」であると言われる理由です。
また、通常の Python 関数のように return ステートメントは使用しません。したがって、Lambda 関数を自由に使用できます。(この場合のように) 印刷したり、変数に保存したりできます。
次に、Lambda 関数の一般的な使用例をいくつか見てみましょう。
Lambda 関数は、一時的に単純な関数が必要な状況で特に使用されます。特に、高階関数の引数としてよく使用されます。
実際の例をいくつか見てみましょう。
map() は、指定された関数を反復可能オブジェクトの各項目に適用し、その結果を含むマップ オブジェクトを返す組み込み関数です。
たとえば、リスト内の各数値の平方根を計算したいとします。次のように Lambda 関数を使用できます:
pip install pandas
これにより、次の結果が得られます:
lambda arguments: expression
これで、初期数値の平方根を含むリストができました。
ご覧のとおり、これにより、後で再利用する必要のない関数をその場で使用するためのプロセスが大幅に簡素化されます。
ここで、数値のリストがあり、偶数の数値をフィルターしたいとします。
Lambda 関数は次のように使用できます:
add = lambda x, y: x + y
これにより、次の結果が得られます:
result = add(3, 5) print(result)
Python のsorted() 関数は、反復可能な要素から新しい並べ替えられたリストを返します。 Lambda 関数を使用すると、これらのリストに特定のフィルタリング基準を適用できます。
たとえば、2 次元 (x,y) の点のリストがあるとします。 y 値を段階的に並べるリストを作成したいと考えています。
次のようにすることができます:
8
そして次のようになります:
# Define the list of numbers numbers = [1, 2, 3, 4] # Calculate square values and print results squared = list(map(lambda x: x ** 2, numbers)) print(squared)
Lambda 関数は、その簡潔性を考慮して、オンザフライ計算のためにリスト内包表記に埋め込むことができます。
数字のリストがあると仮定します。私たちがしたいのは:
その方法は次のとおりです:
[1, 4, 9, 16]
そして次のようになります:
# Create a list of numbers numbers = [1, 2, 3, 4] # Filter for even numbers and print results even = list(filter(lambda x: x % 2 == 0, numbers)) print(even)
これまで検討した例を踏まえて、Lambda 関数を使用する利点をいくつか見てみましょう。
Python の Lambda 関数の制限と欠点について簡単に説明します。
いくつかの長所と短所を検討したので、Lambda 関数を効果的に使用するためのベストプラクティスを定義しましょう。
場合によっては、より高度な Lambda 関数テクニックが役立つことがあります。
いくつかの例を見てみましょう。
Lambda 関数は、複雑な操作のためにネストできます。
この手法は、シーケンス内で複数の小さな変換が必要なシナリオで役立ちます。
たとえば、数値の平方根を計算して 1 を加算する関数を作成するとします。これを行うために Lambda 関数を使用する方法は次のとおりです。
pip install pandas
次のものが得られます:
lambda arguments: expression
多くの Python ライブラリは Lambda 関数を利用して、複雑なデータ処理タスクを簡素化します。
たとえば、Lambda 関数を Pandas や NumPy とともに使用すると、データの操作と変換を簡素化できます。
2 つの列を持つデータ フレームがあるとします。他の 2 つの列の合計である別の列を作成したいと考えています。この場合、次のように Lambda 関数を使用できます:
add = lambda x, y: x + y
そして次のようになります:
pip install pandas
Python の Lambda 関数に関する簡単なツアーは以上です!
この記事では、Python で Lambda 関数を使用する方法を確認し、その長所と短所、いくつかのベストプラクティスを検討し、いくつかの高度な使用例について触れました。
コーディングを楽しんでください!
追伸Python の投稿を報道後すぐに読みたい場合は、Python Wizardry ニュースレターを購読して、投稿を 1 つも見逃さないようにしてください。
以上がPython で Lambda 関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。