例を含むPythonLambda関数
公開: 2022-06-04Python —はじめに
Pythonは、非常に人気のある汎用プログラミング言語です。 これは、重要なインデントを使用してコードの可読性を強調する、解釈された高級言語です。 Pythonは、プログラマーがあらゆる規模のプロジェクト用のクリーンで論理的なコードを作成するために使用します。
Pythonは、1980年代にGuidoVanRossumによってABCプログラミング言語の後継として考案されました。 それ以来、Pythonはその汎用性により、人気のあるプログラミング言語であり続けています。
関数—はじめに
関数は、呼び出されたときに機能するコードブロックであり、プログラム内でn回呼び出すことができます。 これらは構造化されたコードステートメントであり、特定の機能を実行し、いつでも使用できます。 関数は基本的に次のように分類されます。
- ユーザー定義関数(USF) —プログラマーの要件に従って変更できるカスタマイズ可能な関数。
- 組み込み関数(BIF) —カスタマイズできない関数であり、使用可能な方法で使用する必要があります。
upGradでオンラインでデータサイエンスコースを学ぶ
PythonLambda関数
Python Lambda関数は、明確な名前を持たないため、基本的に匿名です。 def関数は、Pythonの通常の関数を示すために使用されます。 一方、キーワードLambdaは、匿名Python関数を定義するために使用されます。
Lambda関数は、複数の引数をとることができますが、式は1つだけの小さな関数です。 また、通常のPython関数よりも制限がありますが、構文が簡潔です。 ラムダ関数は、 map ()、 filter ()、 reduce ()関数とともに1994年にPython言語に追加されました。
私たちの米国をチェックしてください-データサイエンスプログラム
データサイエンスとビジネス分析のプロフェッショナル認定プログラム | データサイエンスの科学のマスター | データサイエンスの科学のマスター | データサイエンスの高度な証明書プログラム |
データサイエンスのエグゼクティブPGプログラム | Pythonプログラミングブートキャンプ | ビジネスの意思決定のためのデータサイエンスの専門資格プログラム | データサイエンスの高度なプログラム |
無名関数を定義するには、 defが通常の関数に使用されるようにlambdaキーワードを使用する必要があります。 Pythonで定義された無名関数には3つの部分があります。
- キーワードラムダ
- パラメータまたは束縛変数
- 機能本体
構文
ラムダ関数の構文は次のとおりです。
ラムダp1、p2:式
ここでのパラメータはp1とp2です。 ラムダ関数にパラメーターを追加するための制限はありません。 必要な数だけ追加できます。 ただし、ラムダ関数は構文的に1つの式に制限されています。
Pythonのラムダ関数の例:
例1
x =”ラムダ関数”
#ラムダは印刷するためのパスを取得します
(ラムダx:print(x))(x)
出力
ラムダ関数
例2
x =ラムダa:a + 10
print(x(5))
出力
15
私たちの学習者も読んでいます: Pythonをオンラインで無料で学ぶ
通常の関数とラムダ関数の違い
ラムダ関数には、通常の関数とは構文上の違いがいくつかあります。
- 本文では、ステートメントではなく式のみが使用されます。 pass、assert、return、raiseなどのステートメントが使用されている場合、出力にはSyntaxErrorが表示されます。
例
>>>(ラムダx:アサートx == 2)(2)
ファイル「<input>」、1行目
(ラムダx:アサートx == 2)(2)
^
SyntaxError:無効な構文
- ラムダ関数は、単一の式としてのみ存在できます。 表現が複数の文字列を使用して体全体に広がっている場合でも、単一の表現としてのみ残ることができます。
例:
>>>(ラムダx:
…(x%2および'奇数'または'偶数'))(3)
'奇数'
ラムダ引数が奇数の場合、コードは文字列を奇数に返し、そうでない場合でも返します。 コードは括弧内にあるため2行にまたがっていますが、単一の式のままです。
- ラムダ関数は型アノテーションをサポートしていません。 ラムダ構文に注釈を追加すると、Syntaxerrorが発生します。
- IIFEまたは即時呼び出し関数式は、定義されるとすぐに実行される関数です。 これは、自己実行匿名関数とも呼ばれます。 ラムダ関数は定義されているとおりに呼び出すことができるため、IIFEはラムダ関数の直接の結果です。
ここで、正規関数とラムダ関数の主な違いを見てみましょう。
(ソース)
ラムダ関数–長所と短所
長所
- コードが読みやすくなります。
- 一度使用する機能に最適です。
- 理解しやすく、簡単な論理的説明に使用できます。
短所:
- 複数の独立した式を実行することはできません。
- コードが通常の(def)関数の1行を超える場合、ラムダ関数の使用は理想的ではありません。
- すべての入力、出力、および操作は、通常の関数のようにドキュメンテーション文字列で説明することはできません。
ラムダを使用する場所は?
通常のdef関数とラムダ関数には重要な違いがありますが、内部的には内部的に扱われます。
- Pythonでのラムダ関数の一般的な使用法は、関数型プログラミングです。 関数型プログラミングでラムダを使用して、関数をパラメーターとして別の関数に提供できます。
- 関数を指定するために行数を減らす必要がある場合は、ラムダが最適です。
- Lambdaは、map()、reduce()などの高階関数でも使用されます。
- UIフレームワークイベントへの応答は、ラムダ関数を使用して追跡できます。
ラムダ関数の使用を控える場所はどこですか?
- 複雑なラムダ関数を書くことは、解読が難しいため、良い習慣ではありません。
- 繰り返しの操作にラムダ関数を使用しないでください。
- コードがPythonスタイルガイド(PEP8)に準拠していない場合。
Lambda関数は、通常の関数とまったく同じようにテストされます。 これには、unittestとdoctestの両方を使用できます。
人気のある米国のデータサイエンス記事を読む
認定付きデータ分析コース | 認定付きのJavaScript無料オンラインコース | 最もよく聞かれるPythonインタビューの質問と回答 |
データアナリストインタビューの質問と回答 | 米国のトップデータサイエンスキャリアオプション[2022] | SQLとMySQL–違いは何ですか |
データ型の究極のガイド | 米国のPython開発者給与 | 米国のデータアナリストの給与:平均給与 |
filter()を使用したLambda関数
Filter()は組み込みのPython関数であり、引数としてリストされます。 フィルタ()は、すべての反復可能なアイテムがリストにある場合に使用され、関数がtrueであるアイテムを含む別のリストが返されます。
例:
#説明するPythonコード
#filter()とlambda()
li = [5、7、22、97、54、62、77、23、73、61]
final_list = list(filter(lambda x:(x%2!= 0)、li))
print(final_list)
出力:
[5、7、97、77、23、73、61]
(ソース)
例:
#リストから偶数項目のみを除外するプログラム
my_list = [1、5、4、6、8、11、3、12]
new_list = list(filter(lambda x:(x%2 == 0)、my_list))
print(new_list)
出力
[4、6、8、12]
map()を使用したLambda関数
map関数は、すべてのアイテムがリストにある場合に使用され、リストは、アイテムごとにその関数によって返されるアイテムとともに返されます。
例:リスト内の各アイテムの値を2倍にするには、コードは次のとおりです。
my_list = [1、5、4、6、8、11、3、12]
new_list = list(map(lambda x:x * 2、my_list))
print(new_list)
出力:
[2、10、8、12、16、22、6、24]
例:リスト内のすべての数値を3乗するには、コードは次のとおりです。
list_1 = [1,2,3,4,5,6,7,8,9]
cubed = map(lambda x:pow(x、3)、list_1)
リスト(立方体)
出力:
[1、8、27、64、125、216、343、512、729]
reduce()関数を使用したLambda関数
Pythonのreduce()関数は、リストと引数です。 反復可能で新しい縮小リストを返すために呼び出されます。 足し算機能に少し似ています。
例1
注:この例は、functoolsライブラリからのものです。
リストの合計を取得するには、コードは次のようになります。
#説明するPythonコード
#lambda()でreduce()
#リストの合計を取得するには
functoolsimportreduceから
li = [5、8、10、20、50、100]
sum = reduce((lambda x、y:x + y)、li)
印刷(合計)
出力:
193
結論
Pythonでのラムダ関数の使用は、長い間プログラマーの間で物議を醸しているトピックです。 ラムダを組み込み関数、リスト内包表記、および標準ライブラリに置き換えることができるのは事実ですが、ラムダ関数の理解も必要です。 プログラミングの基本原則を理解し、より良いコードを書くのに役立ちます。
ラムダ関数を個人的に使用しなくても、他の人のプログラムでこれらに遭遇する場合があります。 したがって、とにかくラムダ関数の基本的な知識があることをお勧めします。
本格的なPythonを学び、データサイエンスとビジネス分析のキャリアを向上させたい場合は、米国のトップ大学であるメリーランド大学のupGradのデータサイエンスとビジネス分析のオンラインプロフェッショナル証明書プログラムが最善の策です。
このプログラムは、世界のトップ100大学の1つで学び、メリーランドスミスから証明書を取得して、この分野で成功する可能性を高める機会を提供します。 これは9か月のコースで、300人以上の採用パートナーにアクセスでき、新入生向けの面接の機会が保証され、6回のメンターシップコールがあります。
Pythonのデコレータとは何ですか?
ある関数の引数を取り、別の関数を返すPythonの関数は、デコレータと呼ばれます。 デコレータ構文で示されます。 デコレータはラムダ関数に適用できますが、デコレータ構文では適用できません。 通常、デバッグ目的で実装されます。 または、ラムダ関数をデコレータとして使用することもできますが、お勧めできません。
Python Lambda関数の引数は何ですか?
通常のdef関数のようなLambda関数は、引数を渡すさまざまな方法をサポートしています。 キーワードのみの引数キーワード引数/NAmed引数Varargs/引数の変数リストキーワード引数の変数リスト。
Python Lambda関数のクロージャとは何ですか?
クロージャまたは字句クロージャは、パラメータを除くすべての自由変数が関数の囲んでいるスコープ内の特定の値にバインドされている関数です。 クロージャーはどこからでも呼び出すことができます。 通常のdef関数のようなLambda関数はクロージャにすることができます。