【Python】filter()関数とlambdaでリストから特定の要素を抽出する – サンプルコード付

今回は無名関数lambda(ラムダ式)のより実践的な例として、組み込み関数filter()とlambdaをあわせて使う方法を学びましょう。lambdaについてわからない場合はPython の無名関数 lambda(ラムダ式)の基本を参照ください。filter()関数については公式ドキュメントを一読するのが良いでしょう。

実際のソースコードで学ぶ

組み込み関数filter()と無名関数lambda(ラムダ式)とをあわせて使うと、リストから特定の要素だけを抽出することができます。

filter(function, iterable)

具体的にはiterable(第2引数)のうちfunction(第一引数)の返り値がFalseとなる要素がすべて除去され、Trueとなる要素だけを抽出することができます。説明よりも実際のソースコードの方がわかりやすいでしょう。

 

for と if を使っても同様のことができますが、filter() と lambda を使うと1行で簡潔に書けることがわかります。簡潔に書けることも重要ですが、何よりこのfilter()とlambdaのあわせ技を知っていないと他の人が書いたソースコードを読めずに困るかもしれないので、頭に入れておきましょう。

注意事項

上記サンプルコード中のコメントにもあるように組み込み関数filter()はPython2系と3系で返り値が異なり、互換性がありません。2系のコードを3系に移植する際にもこの知識が役に立つでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です