【Python】データの存在を確かめるにはin演算子を使おう!その特徴と使い方を紹介

20230924_Python プログラミング言語

リストにある要素が存在するかどうか確かめるためin演算子を使いました.

in演算子を使うとリストだけでなく辞書や文字列でも特定の要素が含んでいるのか確かめられます.

今回は要素の探索に使えるin演算子について紹介します.

in演算子の特徴について

in演算子はある要素が対象のデータに所属しているか調べられます.
戻り値は真偽値で表されます.

x(ある要素) in s(対象のデータ)
  • ある要素を含んでいる場合:真(True)
  • ある要素を含んでいない場合:偽(False)
training_list = ['ベンチプレス', 'デッドリフト', 'スクワット']

print('ベンチプレス' in training_list) # ベンチプレスはリストの要素にあるのでTrue
print('プロテイン' in training_list) # プロテインはリストの要素にないのでFalse
クリックして拡大できます

in演算子の前に not を付けるとある要素がそのデータに所属していないことも調べられます
not in 演算子

  • ある要素を含んでいない場合:真(True)
  • ある要素を含んでいる場合:偽(False)
training_list = ['ベンチプレス', 'デッドリフト', 'スクワット']

print('ベンチプレス' not in training_list) # ベンチプレスはリストの要素にあるのでFalse
print('プロテイン' not in training_list) # プロテインはリストの要素にないのでTrue
クリックして拡大できます

in演算子はすべてのシーケンス型データ(リストやタプル,文字列,Range)や集合型,さらには辞書にも使えます.実際にPythonを動かして処理を確認してみましょう!

リスト×in演算子

対象のリストに指定する要素があればTrue, なければFalseを返します.

muscle_part_list = ['大胸筋', '上腕二頭筋', '広背筋']

print('大胸筋' in muscle_part_list) # 大胸筋はリストの要素にあるのでTrue
print('脂肪' in muscle_part_list) # 脂肪はリストの要素にないのでFalse
クリックして拡大できます

タプル×in演算子

対象のタプルに指定する要素があればTrue, なければFalseを返す.

muscle_part_taple = ('大胸筋', '上腕二頭筋', '広背筋')

print('大胸筋' in muscle_part_taple) # 大胸筋はリストの要素にあるのでTrue
print('脂肪' in muscle_part_taple) # 脂肪はリストの要素にないのでFalse
クリックして拡大できます

文字列×in演算子

対象の文字列に指定する文字列があればTrue, なければFalseを返す.

string_protein = 'ソイプロテイン'

print('ソイ' in string_protein) # ソイ(=大豆)が含まれているのでTrue
print('ホエイ' in string_protein) # ホエイ(=乳タンパク質)は含まれていないのでFalse
クリックして拡大できます

辞書×in演算子

対象の辞書に指定するキーがあればTrue, なければFalseを返す.

training_dict = {
  'ベンチプレス': 70,
  'デッドリフト': 70,
  'スクワット': 70
}

print('ベンチプレス'in training_dict) # 辞書にベンチプレスはあるのでTrue
print('腕立て伏せ' in training_dict) # 辞書に腕立て伏せはないのでFalse
クリックして拡大できます

ちなみにバリューは検索できません.

まとめ

今回はin演算子の使い方について紹介しました.

色んなデータ型で検索できるので便利ですね!
in演算子を使うと複雑になりそうな処理も簡潔に書けるようになるので是非使っていきましょう!

6. 式 (expression)
この章では、Python の式における個々の要素の意味について解説します。 表記法に関する注意: この章と以降の章での拡張BNF (extended BNF) 表記は、字句解析規則ではなく、構文規則を記述するために用いられています。ある構文規則 (のある表現方法) が、以下の形式 で記述されていて、この構文特有の意味付...