問題一覧に戻る
中級高度なデータ操作
問題61: filter関数

filter()関数は、指定した条件を満たす要素のみを抽出してフィルタリングします。第一引数に条件を判定する関数、第二引数にイテラブルを渡します。結果はfilterオブジェクトとして返され、list()で変換できます。リスト内包表記の条件付きと同様の処理を関数型プログラミングのスタイルで実現できます。

# filter関数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 偶数のみを抽出
even = list((lambda x: x % 2 == 0, numbers))
print("偶数:", even)

# 5より大きい数を抽出
big = list(filter(lambda x: x 5, numbers))
print("5より大:", big)

# aで始まる単語を抽出
words = ["apple", "banana", "ant", "bear", "cat"]
a_words = list(filter(lambda w: w.startswith(), words))
print("aで始まる:", a_words)