Python の filter()メソッドと Lambda 関数

Vaibhav Vaibhav 2022年4月8日
Python の filter()メソッドと Lambda 関数

多くの場合、配列、リスト、タプルなどの反復可能なデータ構造を操作する場合、それらに対してフィルタリング操作を実行する必要があります。

フィルタリングとは、特定の条件に一致する値を取り出すことです。for ループまたは while ループを使用して反復可能なデータ構造の値と値を反復処理し、要素が条件を満たしているかどうかを確認することで、フィルタリングを実行できます。

これは一般的なタスクであるため、Python プログラミング言語には filter() というメソッドが組み込まれています。この方法では、ろ過を行う機能が必要です。

一般に、lambda メソッドは記述が簡単であるため、このジョブで考慮されます。この記事では、Python で filter() メソッドと lambda 関数を一緒に使用する方法を説明します。

Python の filter() メソッドと lambda 関数

filter メソッドは、特定の条件を満たす反復可能オブジェクトから要素をフィルター処理するために使用される Python プログラミング言語の組み込みメソッドです。関数は条件を表し、関数が True を返す値が結果で考慮されます。

filter() は 2つのパラメーターを受け入れます。ブール値と、リストやタプルなどの反復可能なオブジェクトを返すフィルタリング用の関数。filter() メソッドはイテレータまたは filter オブジェクトです。

list() メソッドまたは tuple() メソッドを使用して、イテレータをリストまたはタプルに変換する必要があります。lambda 関数は Python のインライン関数と無名関数です。

これらの関数は、filter メソッドと一緒に使用できます。

lambda 関数の構文は次のとおりです。

lambda < parameters > : < expression >

パラメータはコンマで区切る必要があり、式はブール結果(True または False)を返す必要があります。

簡単な例を使って、この 2つを一緒に使用する方法を理解しましょう。同じことについては、次の Python コードを参照してください。

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

出力:

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 4, 15, 7, 8, 10]

上記の Python コードは、20 以下の整数のリスト array からすべての値をフィルタリングします。

リストの各値は lambda 関数に渡されます。True を返す場合、値が結果に追加されます。そうでなければ、そうではありません。

イテレータで結果が取得されると、組み込みの list() メソッドを使用してリストに変換されます。最後に、両方のアレイがコンソールに出力されます。

以下は、filter() メソッドと lambda 関数の使用法を理解するためのいくつかの例です。

整数のリストからすべての偶数をフィルタリングする

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 0, array))
print("Old Array:", array)
print("New Array:", new_array)

出力:

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [2, 4, 66, 88, 100]

整数のリストからすべての奇数をフィルタリングする

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 1, array))
print("Old Array:", array)
print("New Array:", new_array)

出力:

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [1, 3, 5, 77, 99]

文字列のリストから長さ 5 のすべての文字列をフィルタリングする

array = [
    "hello",
    "python",
    "world",
    "walking",
    "sleep",
    "shelter",
    "food",
]
new_array = list(filter(lambda x: len(x) == 5, array))
print("Old Array:", array)
print("New Array:", new_array)

出力:

Old Array: ['hello', 'python', 'world', 'walking', 'sleep', 'shelter', 'food']
New Array: ['hello', 'world', 'sleep']

整数のリストから [10, 20] の範囲内のすべての数値をフィルタリングする

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: 10 <= x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

出力:

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 15, 10]
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python Function

関連記事 - Python Lambda