Pythonにおけるfilter()の利用方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonにおけるfilter()の利用方法について現役エンジニアが解説しています。filter()関数とはリスト型で条件に当てはまるものだけを取り出したいときなどに使う関数です。引数に関数を指定しますが、無名関数のlambdaを使って記述することも出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonにおけるfilter()の利用方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonにおけるfilter()の利用方法について詳しく説明していくね!

大石ゆかり

お願いします!

この記事では、Pythonにおけるリスト型の操作に使われるfilter()関数について解説します。

目次

  1. filter()とは?
  2. filter()の使い方
  3. filter()を利用してリスト操作してみよう

 

filter()とは?

filter()とは、Pythonに標準で組み込まれている関数であり、リスト型で条件に当てはまるものだけを取り出したいときなどに使います。

例えば、ある特定の文字列を含む要素やある値より大きいものだけを取り出したいときなどです。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

filter()の使い方

filterの使い方は、通常の関数とは少し違っており、引数に関数を用います。

しかし、関数を引数にする場合でも、どんな関数でもいいわけではなく、TrueとFalseを出力する関数でなければなりません。

filter関数は下記のように記述します。

filter(関数, リスト)

 

この関数の返り値としては、リスト関数ではなくfilterオブジェクトと呼ばれるものが返されます。

filterオブジェクト自体について深く理解する必要はありません。

しかし、リストとして使いたい場合には次のように記述します。

list(filter(関数, リスト))

 

また、似たような使い方をするlmabda関数では、第2引数の要素について1つずつ条件式を計算していき、Trueのときだけリストの要素に追加するという処理を行っています。

lambda関数は、下記のように記述しましょう。

lambda 要素: 条件式

 

そして、このlambda関数を使うことで次のように短い行数でコードを書くことができます。

filter(lambda x: xについての条件式, リスト)

 

filter()を利用してリスト操作してみよう

では、実際にfilter()関数を使ってリストの操作をしてみましょう。

1~10の数字が格納されたリストを用意して、偶数のものだけをfilter()関数で抽出します。

プログラムコードを以下に示します。

今回は、コマンドラインで’python’を実行すれば開かれる対話型シェルで実行することを想定したものです。

>>>def isEven(number):  #TrueかFlaseの真偽値を返す関数を用意
>>>  if number  % 2 == 0:
>>>    return True
>>>  else:
>>>    return Flase
>>>
>>>list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  #リストの用意
>>>list2 = list(filter(isEven(), list2))
>>>print(list2)

 

これを順に実行していくと、一番最後の行を実行したところで下記のようにfilter()関数が適用できたことがわかります。

[2, 4, 6, 8, 10]

 

無名関数lambdaを使う場合は、list2の部分を下記のように記述すれば、よりシンプルに短いコードで書くことができます。

>>>list2 = list(filter(lambda x: x % 2 == 0 , list2))

この記事では、Pythonのリスト型で条件にあった要素を抽出することのできるfilter()について解説しました。

リストの扱いでは非常に便利で役に立つ関数であるので覚えておくと良いでしょう。

 

執筆してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

Pythonにおけるfilter()の利用方法がよく分かったので良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。