コンテンツにスキップ

Pythonでの「in」の使い方を簡単に解説

CodeMDD.io

Pythonの「in」と「not in」演算子:メンバーシップのチェック

practiceshttps://codemdd.io/) python


Pythonの**「in」と「not in」演算子を使用すると、与えられた値が値のコレクションの一部であるかどうかを迅速に判断することができます。この種のチェックはプログラミングで一般的であり、Pythonでは一般的にメンバーシップテストとして知られています。したがって、これらの演算子はメンバーシップ演算子**として知られています。

このチュートリアルでは、次の内容を学びます:

  • **in演算子とnot in**演算子を使用してメンバーシップテストを実行する方法
  • innot inをさまざまなデータ型で使用する方法
  • in演算子に対応する同等の関数であるoperator.contains()を使用する方法
  • 独自のクラスinnot inをサポートする方法

classeshttps://codemdd.io/)についても知っている必要があります。

operator-codehttps://codemdd.io/)をダウンロードして、Pythonでinnot inを使用してメンバーシップテストを実行します。

メンバーシップテストをPythonで始めましょう

時には、特定の値が値のコレクション内に存在するかどうかを調べる必要があります。言い換えれば、指定された値が値のコレクションの一部であるかどうかを確認する必要があります。このようなチェックは一般的に[メンバーシップテスト](https:https://codemdd.io/docs.python.orghttps://codemdd.io/jahttps://codemdd.io/3https://codemdd.io/referencehttps://codemdd.io/expressions.html#membership-test- operations)として知られています。

statementshttps://codemdd.io/)の助けを借りて行うことができます。

以下のis_member()関数を考えてみてください:

def is_member(value, iterable):
for item in iterable:
if value is item or value == item:
return True
return False

identity-vs-equalityhttps://codemdd.io/#comparing-identity-with-the-python-is-and-is-not-operators)または等価演算子(==)による値の等しさをチェックします。これらはわずかに異なりますが、

であるとされています。

これを実行すると、次のような結果が表示されるはずです:

>>> test_list = [1, 2, 3, 4, 5]
>>> is_member(3, test_list)
True
>>> is_member(6, test_list)
False

この例では、test_listという名前のリストがあり、is_member()関数を使用して値36がリスト内に存在するかどうかをチェックしています。is_member()関数はリストを反復処理し、目標の値を発見した場合にTrueを返します。6はリストに存在しないため、Falseが返されます。

異なるPythonのデータ型でのinnot inの使用

in演算子とnot in演算子は、さまざまなデータ型で使用することができます。以下では、リスト、タプル、範囲、文字列、ジェネレータ、辞書、セットのそれぞれについて説明します。

リスト、タプル、範囲

リスト、タプル、および範囲は、順序がありインデックス順にアクセスできるシーケンス型です。これらのデータ型では、in演算子とnot in演算子を使用して特定の値が存在するかどうかを簡単にチェックできます。

リストとタプルの例を見てみましょう:

>>> test_list = [1, 2, 3, 4, 5]
>>> 3 in test_list
True
>>> 6 in test_list
False
>>> test_tuple = (1, 2, 3, 4, 5)
>>> 3 in test_tuple
True
>>> 6 in test_tuple
False

範囲オブジェクトの例を見てみましょう:

>>> test_range = range(1, 6)
>>> 3 in test_range
True
>>> 6 in test_range
False