logo

Pythonのfilter()関数

Python の組み込みの filter() 関数も強力です。リスト、タプル、文字列などのシーケンスに対してデータ フィルタリング手順を実行します。 filter() 関数は、反復可能 (リストやタプルなど) の各要素に関数を適用し、関数が True を返す要素だけを含む別の反復可能を返すために使用されます。これらの方針に沿って、filter() を使用すると、何らかの条件に基づいてグループから要素をフィルターで除外できます。関数が使用できず、True の要素のみを返す場合、最初の引数は None にすることができます。

構文:

 filter (function, iterable) 

パラメーター

関数: それは関数です。 None に設定すると、True の要素のみが返されます。

反復可能: リスト、タプル、文字列などの反復可能なシーケンス。

両方のパラメータが必要です。

戻る

関数によって返されるものと同じものを返します。

Javaの期間

その機能を理解するために、filter() 関数の例をいくつか見てみましょう。

Python filter() 関数の例 1

この簡単な例では、フィルター関数を使用して 5 より大きい値を返します。以下の例を参照してください。

コード

 # Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result)) 

出力:

[6] 

このコードでは、単一の引数 x を取る filterdata という関数を定義しています。この関数では、x が 5 より大きいと仮定してチェックし、これが真の場合、x を出力します。次に、filter() 関数を呼び出し、主引数として filterdata を渡し、後続の引数としてタプル (1, 2, 6) を渡します。 filter() 関数は、filterdata() 関数をタプルのすべての要素に適用し、条件 x > 5 を満たす要素だけを含む反復子を返します。最後に、list() 関数を使用して反復子をリストに変換します。そして結果を印刷します。

以下に、Python で filter() メソッドを利用する方法の追加の例をいくつか示します。

例 2:

リストから空の文字列をフィルターで除外します。

コード

配列スライスJava
 # Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result) 

出力:

 [ 'hello', 'world' ] 

この例では、ラムダ関数は、各文字列が空の文字列 ('') と同等であると仮定してテストすることで、各文字列が空でないことをチェックします。 filter() 関数は、空ではない文字列だけを含む別の反復可能オブジェクトを返します。

例 3:

リストから負の数値をフィルターで除外します。

コード

 # Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result) 

出力:

 [1, 3, 5] 

この例では、ラムダ関数は、各数値がゼロ (0) よりも顕著であるか、ゼロ (0) と同等であるかどうかをテストすることで、各数値が負ではないと仮定してチェックします。 filter() 関数は、非負の数値だけを含む別の反復可能オブジェクトを返します。

例 4:

リストから重複を除外します。

コード

 # Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result) 

出力:

 [ 1, 4, 5 ] 

この例では、ラムダ関数は、各数値が数値リストに 1 回だけ出現するかどうかを、その数値が出現する頻度 (numbers.count(x)) をカウントし、そのカウントが以下と等しいかどうかをテストすることによってチェックします。 1. filter() 関数は、一意の数値だけを含む別の反復可能オブジェクトを返します。

注: Python 3 では、filter() 関数が反復可能を返すことが重要であり、これは、リストとして含めるために、それを完全にリスト (上の例に示されているように) に変更する必要があることを意味します。それにもかかわらず、Python 2 では、filter() 関数はもちろんリストを返します。

結論:

最後に、filter() 関数は、Python でのデータ操作のための強力なツールです。事前定義された条件に基づいて反復可能オブジェクトをフィルター処理することで、本当に必要なデータを迅速かつ効果的に分離できます。同様に、filter() を他の Python 関数と組み合わせて利用して、より複雑なデータ操作を実行することもできます。