目次
はじめに
Pythonには、データを簡潔に処理できる便利な関数が多数用意されています。その中でも filter
関数は、リストやタプルの要素を条件に基づいて抽出する際に役立ちます。本記事では、filter
関数の基本から応用までを詳しく解説し、初心者でもすぐに使えるように説明します。
filter関数とは?
filter
関数は、指定した関数の条件を満たす要素だけを抽出するための関数です。リストやタプルなどのイテラブルオブジェクトに適用でき、ループ処理を使わずにシンプルなコードでデータをフィルタリングできます。
filter関数の基本構文
filter
関数の基本的な構文は以下のとおりです。
filter(function, iterable)
function
: 各要素を評価する関数。True
を返した要素のみが抽出されます。iterable
: フィルタリング対象となるリストやタプルなどのイテラブルオブジェクト。
filter
関数の結果は filter
オブジェクトとして返されるため、リストに変換することが多いです。
list(filter(function, iterable))
filter関数の使用例
偶数のみを抽出する
def is_even(n):
return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # [2, 4, 6]
空文字を除外する
words = ["apple", "", "banana", "cherry", ""]
non_empty_words = list(filter(lambda word: word != "", words))
print(non_empty_words) # ['apple', 'banana', 'cherry']
filter関数の応用例
クラスの成績で合格者を抽出
def is_pass(score):
return score >= 60
scores = [45, 78, 88, 59, 90, 33]
passed_students = list(filter(is_pass, scores))
print(passed_students) # [78, 88, 90]
辞書のリストから特定条件に合うデータを抽出
people = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 17},
{"name": "Charlie", "age": 30}
]
adults = list(filter(lambda person: person["age"] >= 18, people))
print(adults) # [{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
まとめ
filter
関数は、リストや辞書のデータを条件に基づいて効率的にフィルタリングするのに便利な関数です。基本的な使い方から応用例までを学ぶことで、実践的なコードが書けるようになります。ぜひ、自分のプロジェクトに活用してみてください。