single
Filter関数の活用
メニューを表示するにはスワイプしてください
高階関数である map を使って、シーケンス内の各要素に関数を適用する方法はすでに学習しました。Python でのもう一つの重要な高階関数が filter です。
filter 関数は、特定の条件を満たすかどうかに基づいてシーケンスから要素を選択するために使用されます。2つの引数を受け取ります。1つ目は各要素に対して True または False を返す関数、2つ目はフィルタリング対象のシーケンスです。結果は、関数が True を返した要素のみを含むイテレータとなります。これにより、filter はリストやタプル、その他のイテラブルから、偶数、正の値、特定の長さの文字列など、基準に基づいて特定の要素を抽出したい場合に特に有用です。
123456def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
このコードは、filter() 関数を使って既存のコレクションから偶数のみを含む新しいリストを作成しています。述語関数 is_even(n) を定義し、filter 関数が numbers リストの各要素にこの条件を適用し、条件を満たさない要素を除外します。最後に、得られた filter オブジェクトをリストに変換し、出力を生成します。
filter 関数を使用すると、filter オブジェクト(イテレータ)が返されます。これはリストではありません。filter の結果を直接出力すると、次のような出力が表示されます。
<filter object at 0xfffec885eb30>
フィルタリングされた値をリストとして取得するには、list() を使って filter オブジェクトを変換する必要があります。
スワイプしてコーディングを開始
filter関数を使用して、リストから正の数を選択します。
is_positive関数は、引数が0より大きい場合にTrueを返し、それ以外の場合はFalseを返します。filter_positive関数は、filter関数とis_positiveを組み合わせて、入力リストから正の数のみを含む新しいリストを作成します。- この新しいリストを返してください。
passを削除することを忘れないでください。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください