Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのfilter()関数とは?基本構文と偶数抽出の具体例を解説

Pythonのfilter()関数は、リストやタプルといったイテラブルの中から、指定した条件を満たす要素だけを取り出すための組み込み関数です。この記事では、実際にリストを用意して条件を適用し、特定の要素を選び出す方法を具体例とともにわかりやすく解説します。

filter()の基本構文

filter(function, iterable)
function: イテラブルの各要素に対して実行される関数
iterable: フィルタリング対象のイテラブル

filter()は、第1引数に渡した関数を第2引数の各要素に順番に適用し、その結果がTrueになった要素のみを含むフィルタオブジェクト(イテレータ)を返します。判定には、各要素に対してTrueまたはFalseを返す関数を用意するのがポイントです。

サンプルコード:リストから偶数だけを取り出す

以下の例では、数値を2で割った余りを調べることで偶数か奇数かを判定する関数を定義しています。この関数をfilter()を使ってリストに適用し、偶数だけを取り出して表示します。

Example

listA = [15, 8, 21, 13, 32]

def findeven(x):
    if x % 2 != 0:
        return False
    else:
        return True

evenum = filter(findeven, listA)
for x in evenum:
    print(x)

実行結果

上記のコードを実行すると、リスト内の偶数である次の要素が出力されます。

8
32

lambdaを使ったより簡潔な書き方

条件がシンプルな場合は、名前付き関数を定義せずにlambda式を使うことで、コードを一行でまとめることもできます。

listA = [15, 8, 21, 13, 32]
evenum = filter(lambda x: x % 2 == 0, listA)
print(list(evenum))  # 出力: [8, 32]

filter()の返り値はイテレータなので、必要に応じてlist()でリスト化して扱うと便利です。条件に合う要素だけを効率よく抽出したい場面で、ぜひ活用してみてください。

  1. Pythonのissubset()関数とは?部分集合の判定方法を実例付きで解説

    本記事では、Python標準ライブラリに用意されているissubset()関数の仕組みと使い方について詳しく解説します。 issubset()メソッドは、あるセット(集合)のすべての要素が、引数として渡した別のセットにも含まれている場合にブール値のTrueを返し、1つでも含まれていない要素があればFalseを返します。 下の図では、BはAの部分集合です。もしAとBが同一のセットであれば、両者は互いに部分集合の関係にあるといえます。つまり、両方のセットがまったく同じ要素を持っているということを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値

  2. Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法

    この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print