Pythonのfilter関数の使い方を教えてください。

Python 言語のfilter()関数は、シーケンス(反復可能なオブジェクト)をフィルターして、与えられた関数の戻り値によって要素を残すかどうかを判定するために利用される。その構文は次の通り。

filter(function, iterable)

そのうち、function は各要素を保持するかどうかを判断するために使用する関数で、iterable は反復可能なオブジェクト(例えば、リスト、タプル、セット、文字列など)です。

filter() 関数は、反復可能なオブジェクトの各要素に順番に function 関数を適用し、function が True を返した場合にその要素は保持され、そうでない場合は破棄されます。最終的に、filter() 関数は、保持された要素を含む新しい反復可能なオブジェクトを返します。

以下に filter() 関数を使用する例を示します。

  1. リストから偶数をフィルターする:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(num):
return num % 2 == 0
even_numbers = filter(is_even, numbers)
print(list(even_numbers))  # 输出:[2, 4, 6, 8, 10]
  1. 文字列から小文字を除去
text = "Hello, World!"
def is_lowercase(char):
return char.islower()
lowercase_chars = filter(is_lowercase, text)
print(''.join(lowercase_chars))  # 输出:elloorld
  1. lambda式を使ってリスト中の負の数を抽出する:
numbers = [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
negative_numbers = filter(lambda x: x < 0, numbers)
print(list(negative_numbers))  # 输出:[-1, -3, -5, -7, -9]

注:Python 3におけるfilter()関数はイテレータを返却するので、結果を直接確認したい場合はリストに変換(list())する必要があります。また、Python 2ではfilter()関数はリストを返却します。

bannerAds