filter() 関数でフィルタリングする
最終更新:2026-09-22
filter() 関数でフィルタリングする
filter(function, iterable) は iterable の中で function が True を返す要素を保持する。イテレータを返す。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
filter(function, iterable)
⚙️ 引数
| function 必須 | The predicate; pass None to use element truthiness directly. |
|---|---|
| iterable 必須 | The iterable to filter. |
戻り値:A filter iterator; wrap with list() to materialize it.
💥 例外
TypeError— Raised when function is not callable or iterable is not iterable.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
[2, 4]
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qfilter() は何を返しますか?
Afilter イテレータ(遅延)を返します。list(filter(...)) でリストに変換するか、イテレートして初めて結果を得られます。
Qfilter(None, lst) はどういう意味ですか?
Afunction が None のときは要素の真偽値でフィルタします。これは [x for x in lst if x] と等価で、0、''、None などの偽値を一度に除去できます。
Qfilter() とリスト内包表記のどちらがいいですか?
A意味が等価なら、内包表記 [x for x in lst if cond] の方が読みやすいです。一方、既存の関数と組み合わせる場合(例:filter(str.isdigit, s))は filter のほうが簡潔です。
Qfilter は判定関数を即座に呼びますか?
A呼びません。filter は遅延評価で、イテレーションが始まってから要素ごとに関数を呼びます。大規模データのチェーン処理に適しています。