Pythonにおけるfilter()の利用方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonにおけるfilter()の利用方法について現役エンジニアが解説しています。filter()関数とはリスト型で条件に当てはまるものだけを取り出したいときなどに使う関数です。引数に関数を指定しますが、無名関数のlambdaを使って記述することも出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
Pythonにおけるfilter()の利用方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Pythonにおけるfilter()の利用方法を学習していただくことで、実務でリスト型で条件に当てはまる場合のみ抽出したい場合に活用することが可能です。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonにおけるfilter()の利用方法について詳しく説明していくね!
お願いします!
この記事では、Pythonにおけるリスト型の操作に使われるfilter()関数について解説します。
filter()とは?
filter()とは、Pythonに標準で組み込まれている関数であり、リスト型で条件に当てはまるものだけを取り出したいときなどに使います。
例えば、ある特定の文字列を含む要素やある値より大きいものだけを取り出したいときなどです。
filter()の使い方
filterの使い方は、通常の関数とは少し違っており、引数に関数を用います。
しかし、関数を引数にする場合でも、どんな関数でもいいわけではなく、TrueとFalseを出力する関数でなければなりません。
filter関数は下記のように記述します。
filter(関数, リスト)
この関数の返り値としては、リスト関数ではなくfilterオブジェクトと呼ばれるものが返されます。
filterオブジェクト自体について深く理解する必要はありません。
しかし、リストとして使いたい場合には次のように記述します。
list(filter(関数, リスト))
また、似たような使い方をするlambda関数では、第2引数の要素について1つずつ条件式を計算していき、Trueのときだけリストの要素に追加するという処理を行っています。
lambda関数の基本的な記述は次のとおりです。
lambda (引数): (返り値)
lambda関数についてはこちらの記事を参考にしてみてください。
そして、このlambda関数を使うことで、次のように短い行数でコードを書くことができます。
filter(lambda x: xについての条件式, リスト)
filter()を利用してリスト操作してみよう
サンプルコード
def isEven(number):
return number % 2 ==0
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list2 = list(filter(isEven, list1))
print(list2)
解説
1行目のdef isEven(number):では、numberを引数とするisEven関数を宣言しています。
今回は、偶数かどうかの判断をする関数です。
英語で偶数はEvenということから、isEvenという関数名にしています。
2行目のreturn number % 2 ==0では、isEven関数の引数numberが2で割り切れる場合にreturnするという処理です。
3行目のlist1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]では、list1という変数に、[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]というリストを代入して、リストを用意しています。
4行目のlist2 = list(filter(isEven, list1))では、list2という変数に、list(filter(isEven, list1))の結果を代入しています。
list(filter(isEven, list1))では、list1の値1つ1つをisEven関数の引数にし、filter関数を利用して値の抽出を行っています。
今回filter(isEven, list1)では、iterator(イテレータ)といって配列のような集合データ構造の値が返ってきます。
そのため、list(filter(isEven, list1))というように、list関数を利用することでlist形式にしています。
5行目のprint(list2)では、list2の値を表示しています。
今回は、[2, 4, 6, 8, 10]という、偶数の値のみが抽出されて表示されました。
実行結果
この記事では、Pythonのリスト型で条件にあった要素を抽出することのできるfilter()について解説しました。
リストの扱いで非常に便利なので、ぜひ使ってみてくださいね。
執筆してくれたメンター
中本賢吾(なかもとけんご) アジマッチ有限会社 代表取締役社長開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。WordPressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。小学生がUnityでオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programming Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。 |
Pythonにおけるfilter()の利用方法がよく分かったので良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!