Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonフィルター:ステップバイステップのチュートリアル

Python filter() メソッドは、リスト、セット、およびタプルをフィルタリングするために使用されます。 filter() 提供された基準に従って反復可能なオブジェクトをフィルタリングし、フィルタリングされた結果を返します。


プログラミング中に、何らかの方法でフィルタリングしたい値のリストがある場合があります。たとえば、Cookieの注文のリストがあり、Cookieストアの特定の料理人によって処理されるチョコレートを含む注文のみを返品したい場合があります。

そこで、Pythonのfilter() メソッドが入ります。filter() メソッドを使用して、事前定義された一連の基準に基づいて特定のリストをフィルタリングし、フィルタリングされたデータで反復可能データを返すことができます。

このチュートリアルでは、filter()について説明します。 メソッドとそれをコードで使用する方法。また、Pythonコードの関数の例をいくつか紹介します。

Pythonフィルター

リストはPythonのデータ型であり、共通のテーマで複数の値を格納するために使用できます。たとえば、リストを使用して、地元のファッション店で販売されているすべての服を保存したり、プログラミング言語名のリストを保存したりできます。

多くの場合、リストを操作するときは、一連の基準に基づいてリストを除外する必要があります。たとえば、映画館を運営していて、18歳未満の人がシネマコンプレックスで映画に参加している人数を知りたい場合があります。

filter() 組み込み関数である、は、リストを除外してイテレータを返すために使用できます。 filter()の構文は次のとおりです 方法:

filter(function, iterable_object)

filter() メソッドは2つのパラメーターを取ります:

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

  • 機能 指定したイテラブル(必須)の各アイテムで実行されるコードです。この関数は、iterableがTrueまたはFalseを返すかどうかをチェックします。
  • iterable_object フィルタリングするオブジェクトです(必須)。

指定する反復可能オブジェクトは、Pythonlistsなどの任意の反復可能オブジェクトにすることができます 、sets 、およびtuples

Pythonフィルターの例

この方法の使用方法を示す例を実行してみましょう。

マガジンスタンドを操作していて、新しい在庫を注文する必要があるかどうかを確認したいとします。雑誌のエディションが20未満の場合は、新しい注文をする必要があります。雑誌のエディションが20を超える場合は、新たに注文する必要はありません。持っている雑誌の数を保存する番号のリストがあります。

雑誌を注文する必要があるかどうかを確認するには、次のコードを使用できます。

quantities = [25, 49, 21, 17, 14, 28]

def checkQuantities(mags):
	if mags < 20:
		return True
	else:
		return False

filtered_mags = filter(checkQuantities, quantities)
print(list(filtered_mags))

コードは次のようになります:[17, 14]

コードを分解してみましょう。最初の行で、quantitiesという変数を定義します。 在庫にある各雑誌のエディションの数を保存します。

次に、checkQuantitiesという関数を定義します。 特定の雑誌の在庫が20冊未満かどうかを確認します。エディションが20未満の場合は、checkQuantities 関数はTrueを返します。それ以外の場合は、Falseを返します。

次に、filter()を使用します メソッドを指定し、checkQuantitiesを指定します 関数およびquantitiesとして 反復可能なオブジェクトとして。これは、filter()に通知します checkQuantitiesを実行するメソッド 数量配列のすべてのアイテム。

次に、filter()の結果を出力します。 メソッド、およびlist()を使用します それをリストに変換します。 filter()であるため、これは重要です。 リストではなく、フィルタリングされたオブジェクトを返します。したがって、データを表示する場合は、データをリストに変換する必要があります。

ご覧のとおり、コードは17と14の2つの値を返します。これらはそれぞれ20未満であり、プログラムが意図したとおりに機能したことを意味します。

この方法がどのように機能するかを示すために、別の例を見てみましょう。私たちがダンスインストラクターであり、7歳から10歳までのクラスの全員の年齢を知りたいとします。次のコードを使用して、このデータを取得できます。

student_ages = [7, 9, 8, 10, 11, 11, 8, 9, 12]

def checkAges(ages):
	if ages >= 7 and ages <= 10:
		return True
	else:
		return False

filtered_ages = filter(checkAges, student_ages)
print(list(filtered_ages))

コードは次のようになります:[7, 9, 8, 10, 8, 9] 。ご覧のとおり、私たちのプログラムでは、7歳から10歳までの学生を、7歳から10歳までのリスト要素から除外しています。結果のリストには、フィルタリングされたデータが含まれます。

Lambdaを使用したPythonフィルター

フィルタ操作をより効率的にするために、リストマップラムダ関数を使用できます。 Lambdaは、名前なしで定義され、Pythonで短い1行の無名関数を作成するために使用できる特別な関数です。

それでは、上から雑誌の数量の例を見てみましょう。その例では、雑誌の在庫が20版未満かどうかをチェックする関数を作成し、filter()を使用しました。 雑誌のリストでその機能を実行します。次に、私たちのプログラムは、20版未満のすべての雑誌のリストを返しました。

Lambda関数を使用して、これと同じアクションを実行できますが、より効率的です。使用できるコードは次のとおりです。

quantities = [25, 49, 21, 17, 14, 28]

filtered_mags = filter(lambda mag: mag < 20, quantities)
print(list(filtered_mags))

コードは次のようになります:[17, 14]

ご覧のとおり、出力は同じですが、コードは大幅に短くなっています。関数全体を定義する代わりに、Lambdaを使用して1行の関数を定義しました。

この1行の関数は、雑誌の在庫が20部未満かどうかをチェックし、Trueをfilter()に返します。 その場合はイテレータ。実行後、プログラムは17と14の2つの値を持つリストを返します。

結論

Pythonのfilter() 関数を使用して、事前定義された基準のセットに基づいて反復可能オブジェクトをフィルター処理し、フィルター処理された反復可能オブジェクトを返すことができます。この方法は、特定の条件を満たす値のみを取得するデータのリストがある場合に役立ちます。

このガイドでは、filter()の構文について説明しました。 メソッド、およびPythonでの使用方法。 filter()のいくつかの例を調べました 実際に、filter() Python Lambda関数と一緒に使用して、コードをより効率的にすることができます。

これで、filter()を使用するために必要な情報を入手できました。 Pythonエキスパートのように!


  1. Pythonインタープリター:ステップバイステップガイド

    Pythonインタープリターは、マシンに正しいバージョンのPythonがインストールされていることを確認しなくてもオンラインで存在するため、Pythonは非常にアクセスしやすく学習できます。この記事では、Pythonインタープリターとは何かについて説明し、オンラインで使用できる、より人気のある、初心者向けのインタープリターをいくつかリストします。 Pythonプログラムはどのように実行されますか? Pythonは、Javaと同様に、インタプリタ言語またはコンパイル言語として完全に分類することはできません。両方のほんの少しです。 この場合にコンパイルされるということは、どの

  2. Pythonでフィルタリングする

    リストが2つあり、小さいリストの各項目が大きいリストにあるかどうかを確認したい場合があります。このような場合、以下で説明するようにfilter()関数を使用します。 構文 Filter(function_name, sequence name) ここで、Function_nameは、フィルター基準を持つ関数の名前です。シーケンス名は、フィルタリングする必要のある要素を持つシーケンスです。セット、リスト、タプル、またはその他のイテレータにすることができます。 例 以下の例では、いくつかの月の名前のより大きなリストを取得し、30日がない月を除外します。そのために、31日の月を含む小さなリストを