Pythonでは、lambda
という機能を使ってリストから特定の条件に合致する要素を検索することができます。これはJavaScriptのArray.prototype.find()
に似た操作で、非常に便利な機能です。
まず、lambda
とは何か、簡単に説明します。lambda
は無名関数を定義するための機能で、以下のような形式で書きます。
lambda 引数: 返り値
これは、以下の関数定義と同等です。
def func(引数):
return 返り値
では、lambda
を使ってリストから要素を検索する方法を見てみましょう。以下に、リストから特定の条件に合致する最初の要素を検索する例を示します。
fruits = ["apple", "lemon", "melon", "orange"]
elm = next(filter(lambda x: x.endswith("n"), fruits), None)
print(elm) # "lemon"
このコードでは、filter
関数とlambda
を組み合わせて、リストfruits
から末尾が”n”で終わる最初の要素を検索しています。filter
関数は、第1引数に関数(ここではlambda
で定義した無名関数)、第2引数にリストを取り、リストの各要素に対して関数を適用します。関数の結果が真となる要素だけを抽出し、その結果をイテレータとして返します。
next
関数は、イテレータから次の要素を取り出します。イテレータが要素を返さない場合(つまり、条件に合致する要素がない場合)には、next
関数の第2引数で指定したデフォルト値(ここではNone
)が返されます。
以上が、Pythonのlambda
を使ってリストから要素を検索する基本的な方法です。この機能を理解して使いこなすことで、Pythonプログラミングの幅が広がります。