Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Lambda関数:はじめに

Python Lambda関数は、単一行の無名関数です。 PythonのLambda式は、リストのフィルタリング、文字列の大文字小文字の変換、数値の乗算など、名前を必要としない1行の関数に役立ちます。


同様のタスクを複数回実行するプログラムを作成している場合、タスクの動作を変更する必要がある場合は、コードのすべてのインスタンスを更新する必要があるため、コードを繰り返すことは実用的ではありません。コードベースが大きいほど、これらの変更にかかる時間が長くなります。

そこで便利な機能があります。 Pythonには、無名関数と呼ばれる特別なタイプの関数があり、クイック関数を宣言できます。ラムダ式です。

このガイドでは、Pythonでラムダ関数を使用して反復プロセスを自動化する方法について説明します。また、ラムダ関数の動作例を2つ提供するので、独自に作成するために必要なすべての資料を入手できます。

関数とは何ですか?

プログラミングでは、関数は特定のタスクを実行するコードのブロックです。

コーダーが関数を使用する大きな理由の1つは、コードの繰り返しを減らすのに役立つことです。プロセスを関数にバンドルすると、プログラムのどこからでも呼び出すことができます。コードを複数回繰り返す必要はありません。

これは、開発者がより保守しやすいコードを作成するのにも役立ちます。そのプロセスに変更を加える必要がある場合は、関数を変更するだけです。プログラムにコピーして貼り付けたばかりの複数行のコードに変更を加える必要はありません。

Pythonの関数の例を次に示します。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

def say_hello(name):
	print("Hello there, " + name)

say_hello("Arthur")

このコードを実行すると、次のコードが返されます。こんにちは、アーサー。

これらの関数は便利ですが、文字列のリスト内のすべての文字列を小文字にするなどの単純なことをしたい場合、関数の記述は非常に冗長です。コードを機能させるには、新しい関数に名前を割り当てる必要があります。そこでラムダ関数が登場します。

ラムダ関数とは何ですか?

ラムダ関数は、名前なしで定義される関数の一種です。これらの関数は、名前を必要としないため、無名関数と呼ばれることもあります。以前の関数の名前はsayHelloで、「def」を使用して定義されていましたが、ラムダ関数は名前を必要とせず、「lambda」を使用して定義されています。

ラムダ関数を使用する主な利点は、1行で記述できることです。これにより、複数回実行するクイックプロセスがある場合に、ラムダ関数が役立ちます。ラムダ関数が役立つ可能性のあるいくつかの例を次に示します。

  • 数値を掛ける
  • 文字列を大文字または小文字に変換する
  • リストのフィルタリング

Pythonでラムダ関数を作成するための構文は次のとおりです。

name = lambda arguments: expression

ラムダ関数で指定できる引数の数に制限はありません。例を見て、ラムダ関数がPythonでどのように機能するかを説明しましょう。数値に7を掛けたいとします。そのためには、次の関数を使用できます。

def multiply_by_seven(number):
return number * 7

print(multiply_by_seven(2))

このコードを実行すると、次が返されます:14。

このコードは機能しますが、効率は劣ります。関数の名前と引数を定義するコード行全体と、値を計算して返すコードの別の行を使用します。関数をより効率的にするために、ラムダ関数を使用できます。

上記と同じアクションを実行するラムダ関数は次のとおりです。

multiply_by_seven = lambda n: n * 7

print(multiply_by_seven(2))

コードは次のようになります。14。ご覧のとおり、関数の出力は同じです。違いは、通常の関数の代わりにラムダ関数を使用したことです。この場合:

  • ラムダ キーワードは、ラムダ関数を宣言していることを示します
  • n 関数の引数です。
  • n * 7 ラムダ関数に指定された単一の式です。

ラムダ関数はいつ使用されますか?

Lambda関数はPythonで幅広い用途があります。最後の例では、ラムダ関数を使用して2つの数値を乗算する方法を示しました。ただし、注意が必要な一般的なユースケースがいくつかあります。

多くの場合、ラムダ関数はreduce()などの組み込み関数と一緒に使用されます 関数、map() 関数またはfilter() 関数。 Lambda関数は、反復的なタスクを実行するためにリスト内包表記とともに使用されることもあります。

たとえば、私たちがパン屋を所有していて、販売するすべての焼き菓子のリストに基づいて、販売するすべてのパイのリストを作成したいとします。このコードを使用してこれを行うことができます:

baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone']

pies = filter(lambda pie: "Pie" in pie, baked_goods)

print(list(pies))

コードは次のようになります:

['Apple Pie', 'Pecan Pie', 'Blackberry Pie']

これがどのように機能したかを分析してみましょう。コードの最初の行で、焼き菓子のリストを宣言しました。次に、filter()を使用しました 「パイ」という単語を含むすべての焼き菓子を除外する機能。 filter() 関数を使用すると、「baked_goods」リスト内のすべてのアイテムを繰り返し処理し、特定の基準を満たさなかったアイテムを除外することができました。

これを行うには、各文字列に「Pie」が含まれているかどうかをチェックし、その文字列に「Pie」が含まれている場合にのみ文字列を返すラムダ関数を定義します。この場合、ラムダ関数は次のとおりです。

lambda pie: "Pie" in pie

この例から、Pythonラムダ関数に名前が必要ないことがわかります。従来の関数とは異なり、インラインで存在できます。アイテムが基準を満たしている場合、Lambda式はtrueを返します。それ以外の場合、値は返されません。

最後に、変数「pies」をリストに変換し、コンソールに出力します。これを行うのは、filter() カスタムフィルターオブジェクトを返すため、パイを表示するには、list()を使用して変換する必要があります。 。

結論

ラムダ関数は無名関数とも呼ばれ、名前なしで関数を定義できます。これらは、コードでアクションを複数回実行する必要がある場合に役立ちます。

たとえば、ある数値に別の数値を掛ける必要がある場合は、ラムダ関数を使用できます。または、ラムダ関数を使用してリスト内のアイテムを除外することもできます。


  1. Pythonのissubset()関数

    この記事では、Python標準ライブラリで利用可能なissubset()関数の実装と使用法について学習します。 issubset()メソッドは、セットのすべての要素が別のセットに存在する場合(引数として渡される場合)はブール値のTrueを返し、それ以外の場合はブール値のFalseを返します。 下の図では、BはAのサブセットです。AとBが同一のセットである場合、AはBの適切なサブセットであることを意味します。これは、両方のセットに同じ要素が含まれていることを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値 boolean True/

  2. Intersection()関数Python

    この記事では、任意のセットで実行できるintersection()関数について学習します。数学によると、共通部分とは、2つのセットから共通の要素を見つけることを意味します。 構文 <set name>.intersection(<set a1> <set a2> ……..) 戻り値 引数として渡されるセット内の共通要素。 例 set_1 = {'t','u','t','o','r','i','a','l&