Pythonでは、リスト内の要素を検索するためにいくつかの方法があります。ここでは、ラムダ式と組み込み関数を使用した方法を紹介します。
フィルタ関数とラムダ式を使用した方法
Pythonのfilter
関数は、ラムダ式で記述された無名関数を第1引数で受け取り、それを第2引数のリストの各要素に適用します。結果が真となった要素を抽出してイテレータが返されるので、list
関数を適用すればリストとして結果が得られます。
fruits = ["apple", "lemon", "melon", "orange"]
lst = list(filter(lambda x: x.endswith("n"), fruits))
assert lst == ["lemon", "melon"]
この例では、filter
関数とラムダ式を使用して、リストfruits
内の各要素(ここでは果物の名前)が"n"
で終わるかどうかを判断し、その結果を新しいリストlst
に格納しています。
ジェネレータ式とnext関数を使用した方法
ジェネレータ式とは、リスト内包表記のような記法でジェネレータを定義する式です。ジェネレータとはイテレータを返すものなので、next
関数に渡すことができます。
elm = next((f for f in fruits if f.endswith("n")), None)
assert elm == "lemon"
この例では、ジェネレータ式を使用してリストfruits
内の各要素が"n"
で終わるかどうかを判断し、その結果を変数elm
に格納しています。next
関数の第2引数には、要素が見つからなかった場合のデフォルト値としてNone
を指定しています。
これらの方法を使用することで、Pythonのリスト内の要素を効率的に検索することができます。