Pythonのfilter関数とmap関数の違い
Pythonのfilter()関数とmap()関数は、リストや他のイテラブルに対して要素を変換またはフィルタリングするために使用される2つの異なる組み込み関数です。以下は、これら2つの関数の主な違いを説明します。
-
フィルタリング vs. 変換:
-
filter()関数: フィルタリングを行います。指定された条件を満たす要素だけを抽出します。filter()関数は、条件を評価し、その条件に合致する要素のみを保持します。 -
map()関数: 変換を行います。指定された関数を各要素に適用し、変換後の結果を新しいイテラブルとして生成します。リスト内の各要素に対して関数を適用することができます。
-
-
引数の数:
-
filter()関数: 2つの引数を受け取ります。1つ目はフィルタリング条件を評価する関数で、2つ目は対象のイテラブルです。条件を満たす要素を抽出します。 -
map()関数: 2つの引数を受け取ります。1つ目は各要素に適用する関数で、2つ目は対象のイテラブルです。関数を適用して新しい値に変換します。
-
-
戻り値:
-
filter()関数: 条件を満たす要素を含む新しいイテラブル(通常はフィルタリングされた要素のリスト)を返します。 -
map()関数: 各要素に関数を適用して得られる変換後の値を含む新しいイテラブル(通常は変換後の要素のリスト)を返します。
-
-
使用例:
-
filter()関数: 条件に合致する要素を抽出する場面で主に使用されます。例えば、リスト内の偶数や特定の文字列を含む要素を抽出する際に使用します。 -
map()関数: 各要素に変換を適用する場面で主に使用されます。例えば、整数リストの各要素を2倍にしたり、文字列リスト内の各文字列を大文字に変換したりする際に使用します。
-
以下はfilter()とmap()の使用例の比較です:
python
# filter()の使用例 numbers = [1, 2, 3, 4, 5, 6, 7, 8] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # map()の使用例 numbers = [1, 2, 3, 4, 5, 6, 7, 8] doubled_numbers = list(map(lambda x: x * 2, numbers))
filter()はフィルタリングに、map()は変換に適しています。どちらを使用するかは、必要なタスクに合わせて選択する必要があります。

ディスカッション
コメント一覧
まだ、コメントがありません