ホームページ > バックエンド開発 > Python チュートリアル > Python でのラムダ関数の使用法の紹介 (例付き)

Python でのラムダ関数の使用法の紹介 (例付き)

不言
リリース: 2019-04-01 11:17:58
転載
126345 人が閲覧しました

この記事では、Python でのラムダ関数の使用法を紹介します (例付き)。一定の参考値があります。必要な友人は参照できます。お役に立てれば幸いです。

匿名関数ラムダ: は、識別子 (関数名) を定義する必要のない関数またはサブルーチンのタイプを指します。
ラムダ関数は、任意の数のパラメーター (オプションのパラメーターを含む) を受け取り、単一の式の値を返すことができます。

構文:

lambda [arg1 [,arg2,.....argn]]:expression
ログイン後にコピー

コロンの前にパラメーターを指定でき、カンマで区切って複数指定できます。コロンの右側にあるものは式 ( 1 つだけです)。実際、lambda の戻り値は関数のアドレス、つまり関数オブジェクトです。

例:

1. ラムダ関数を変数に割り当て、この変数を通じて間接的にラムダ関数を呼び出します。

def sum(x,y):
    return x+y
print(sum(1,2))
ログイン後にコピー

ラムダ関数を使用する:

sum = lambda x,y : x+y
print(sum(1,2))
ログイン後にコピー

2. ラムダ関数をパラメータとして他の関数に渡します。一部の Python 組み込み関数は関数をパラメーターとして受け入れます。

def odd(x):
    return x%2
temp = range(10)
show = filter(odd,temp)
print(list(show))   #[1, 3, 5, 7, 9]
ログイン後にコピー

ラムダ関数を使用する:

print(list(filter(lambda x: x%2,range(10))))    #[1, 3, 5, 7, 9]
ログイン後にコピー

このとき、リスト要素をフィルタリングするための条件を指定するためにラムダ関数が使用されます。

別の例:

map(lambda x: x+1, [1, 2,3])    #[2, 3, 4]
ログイン後にコピー

このとき、ラムダ関数を使用して、リスト内の各要素に共通の操作を指定します。

追加:sorted()、map()

3. ラムダ関数を他の関数の戻り値として呼び出し元に返します。

関数の戻り値は関数にすることもできます。たとえば、return lambda x, y: x y加算関数を返します。このとき、ラムダ関数は実際には、入れ子関数または内部関数と呼ばれる、ある関数の内部に定義された関数です。同様に、入れ子関数を含む関数は外部関数と呼ばれます。内部関数は外部関数のローカル変数にアクセスでき、この機能はクロージャ プログラミングの基礎です。

4. ラムダ関数を他の関数に割り当てることで、他の関数をラムダ関数に置き換えます。

たとえば、標準ライブラリ時間で関数 sleep をマスク (モック) するには、プログラムの初期化中に time.sleep=lambda x:None を呼び出すことができます。このように、後続のコードで時間ライブラリのスリープ関数を呼び出しても、元の関数は実行されません。たとえば、time.sleep(3) を実行すると、プログラムは 3 秒間スリープせず、何も行いません

5. if...else ステートメントを削減します。これは単一の条件式です。

の構文は次のとおりです: 式 1 if A else 式 2

A が True の場合、条件式の結果は式 1、それ以外の場合は式 2

def s(x):
    if x==1:
        return "yes"
    else:
        return "no"
print(s(0))
print(s(1))
ログイン後にコピー

ラムダ関数の使用:

s=lambda x:"yes" if x==1 else "no"
print(s(0))
print(s(1))
ログイン後にコピー

[関連する推奨事項: Python ビデオ チュートリアル ]

以上がPython でのラムダ関数の使用法の紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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