Python の Lambda 関数: ミニマリスト プログラミングのためのスイス アーミー ナイフ

Python の関数lambda、つまり匿名関数は、非常に強力なツールです。簡潔で洗練された構文で関数を簡単に作成する方法を提供します。この記事では、ラムダ関数の使い方と特徴を総合的に学び、理論と例を組み合わせて Python プログラミング スキルを次のレベルに引き上げます。

Lambda 関数の基本構文

Lambda 関数の基本的な構文形式は ですlambda 参数: 表达式ここで、ラムダ関数には関数名が必要ないことがわかります。これが「匿名」の意味です。これにより、コード内のどこにでも関数をすばやく定義できるようになります。以下のコードは、ラムダ関数の使用方法を示しています。

add = lambda x, y: x + y
print(add(5, 3))  # 输出: 8

この例では、単純な加算関数を作成します。ただし、defキーワードを使用して関数を定義する場合とは異なり、関数に名前を付けません。これが匿名であることを意味します。

Lambda 関数と高階関数

高階関数とは、関数を引数として受け取るか、関数を出力として返す関数です。Python では、一般的な高階関数はmap()filter()reduce()などです。ラムダ関数は、簡潔で明確な効果を実現するために、これらの高次関数と併用されることがよくあります。

たとえば、次の例では、map()関数とラムダ関数を使用して、リスト内のすべての要素を 2 倍にする操作をすばやく実装します。

numbers = [1, 2, 3, 4, 5]
doubled = map(lambda x: x * 2, numbers)
print(list(doubled))  # 输出: [2, 4, 6, 8, 10]

この例では、ラムダ関数を使用して数値を 2 で乗算する関数をすばやく定義し、そのmap()関数をリスト内の各要素に適用します。

条件付きフィルタリングで Lambda 関数を使用する

filter()関数は、Python のもう 1 つの一般的な高階関数です。関数と反復可能オブジェクトをパラメータとして受け取り、新しい反復可能オブジェクトを返します。新しい反復可能オブジェクトの要素はすべて元の反復可能オブジェクト内にあるため、関数は要素を返します値は True です。filter()関数とラムダ関数を使用した例を見てみましょう。

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 输出: [2, 4, 6]

この例では、ラムダ関数を使用して数値が偶数かどうかを判断する関数を定義し、その関数をfilter()リスト内の各要素に適用して、最終的に偶数のみを含む新しいリストを取得します。

Lambda 関数のソートへの応用

Python のsort()orsorted()関数では、カスタム ルールに従って並べ替えるためのキー パラメーターとしてラムダ関数を使用できます。

fruits = ['banana', 'apple', 'cherry', 'lime', 'mango']
fruits_sorted = sorted(fruits, key=lambda x: len(x))
print(fruits_sorted)  # 输出: ['lime', 'apple', 'mango', 'cherry', 'banana']

この例では、ラムダ関数を使用して、デフォルトのアルファベット順ではなく文字列の長さで並べ替えるように指定します。この機能は非常に便利です。たとえば、一連の辞書を並べ替える場合、辞書内の特定のキーの値に従って並べ替えたい場合があります。このとき、lambda 関数が役立ちます。

もう 1 つ: Lambda 関数とクロージャ

ここでは、あまり知られていないかもしれませんが、非常に便利なラムダ関数のトリックを共有したいと思います。それは、ラムダ関数を使用して特別な種類のクロージャを作成する方法です。

def multiplier(n):
    return lambda x: x * n

double = multiplier(2)
triple = multiplier(3)

print(double(4))  # 输出: 8
print(triple(4))  # 输出: 12

この例では、ラムダ関数を返す関数を定義します。返されたラムダ関数は、定義時の環境を記憶しており、これをクロージャと呼びます。このようにして、特定の乗算器を使用してさまざまな乗算関数を作成できます。

要約すると、Python のラムダ関数は、関数を定義するための簡潔かつ洗練された方法を提供します。これは、単純な 1 回限りの関数を定義するのに特に適しています。この記事が、Python のラムダ関数をよりよく理解し、使用するのに役立つことを願っています。

お役に立ちましたら、WeChat の個人公開アカウントにもっと注目してください: [Python の全体像] TeahLead_KrisChang、インターネットおよび人工知能業界で 10 年以上の経験、テクノロジーおよびビジネス チーム管理で 10 年以上の経験、Tongji Softwareエンジニアリング学士、復丹エンジニアリング管理マスター、Aliyun 認定クラウド サービス シニア アーキテクト、数億の収益を誇る AI 製品ビジネスの責任者。

Guess you like

Origin blog.csdn.net/magicyangjay111/article/details/131106723