Pythonの無名関数を詳しく解説

WBOY
リリース: 2023-06-10 20:07:35
オリジナル
8237 人が閲覧しました

Python の匿名関数の詳細説明

Python は、オブジェクト指向で拡張性の高い高水準プログラミング言語であり、数学計算やデータ処理などの分野で広く使用されています。 Python は関数型プログラミングをサポートしており、匿名関数は関数型プログラミングの重要な部分です。この記事ではPythonの匿名関数について詳しく紹介します。

匿名関数とは何ですか?

匿名関数はラムダ関数とも呼ばれ、関数名のない関数です。これは、必要なときに定義され、使用後に破棄される 1 回限りの関数です。たとえば、次のような単純な無名関数を定義できます。

lambda x: x**2
ログイン後にコピー

上記の無名関数の意味は、パラメータ x を渡し、x の 2 乗を返すことです。ここには関数名がなく、匿名関数を表すために lambda キーワードが使用されていることに注意してください。

ラムダ関数の文法構造

ラムダ関数の文法構造は次のとおりです:

lambda arguments: expression
ログイン後にコピー

そのうち、引数は渡されるパラメータを表し、式は式です。 。前の例と同様に、引数は x で、式は x の 2 乗です。

さらに、ラムダ関数には、カンマで区切って複数のパラメータを指定できます。例:

lambda x, y: x + y
ログイン後にコピー

上記のラムダ関数の意味は、2 つのパラメータ x と y を渡し、それらのパラメータを返すことです。和。

ラムダ関数の使用

Python では匿名関数を使用する方法がたくさんあります。一般的な方法をいくつか紹介します。

1. ラムダ関数を変数に代入する

ラムダ関数を変数に代入し、変数名を使用して匿名関数を呼び出すことができます。例:

f = lambda x: x**2
print(f(4)) # 输出16
ログイン後にコピー

上記のコードは、ラムダ関数を定義し、それを変数 f に代入してから、f(4) を呼び出し、4、16 の 2 乗値を返します。

2. 他の関数をパラメーターとして渡す

他の関数を呼び出すとき、ラムダ関数をパラメーターとして渡して、さまざまな関数を実行できます。例:

def apply(func, n):
    return func(n)

print(apply(lambda x: x**2, 5)) # 输出25
ログイン後にコピー

上記のコードでは、apply 関数は 2 つのパラメーターを受け入れます。最初のパラメーターは関数で、2 番目のパラメーターは数値です。 2 番目の引数 (ここでは数値 5) が渡されると、この関数は最初の引数として呼び出され、数値 5 が引数として渡されます。ラムダ関数式 x**2 が最初の引数として apply 関数に渡されるため、25 が出力されます。

3. 他の関数と組み合わせて使用​​する

lambda 関数は、filter 関数や map 関数など、他の関数と組み合わせて使用​​されることがよくあります。フィルター関数はリスト (または他の反復可能なオブジェクト) を最初のパラメーターとして受け取り、条件を満たす要素のみを含む新しいリストを返します。 Map 関数はリスト (または他の反復可能なオブジェクト) を最初のパラメーターとして受け取り、関数によって処理された新しいリストを返します。

たとえば、次のコードは、フィルター関数とラムダ関数を組み合わせた使用法を示しています。

my_list = [1, 3, 5, 6, 8, 9]
filtered_list = list(filter(lambda x: x % 3 == 0, my_list))
print(filtered_list) # 输出[3, 6, 9]
ログイン後にコピー

上記のコードでは、フィルター関数を使用してリスト my_list をフィルターし、 lambda 関数を使用して 3 要素で割り切れる値を返し、最後にその結果を filtered_list に代入します。

結論

この記事では、Python の匿名関数の定義、文法構造、および使用法を紹介します。匿名関数は、コードを簡素化し、コードの読みやすさを向上させるために、他の関数と組み合わせて使用​​されることがよくあります。匿名関数の使用に熟練すると、コードの品質と作業効率の向上に役立ちます。

以上がPythonの無名関数を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート