『Python入門』if文の演算子inを使っていろいろなオブジェクトを比較してみた

Python プログラミング Python

ここではPythonのif分の条件式のうち、「演算子in」について解説します。
演算子in」を使えば、いろいろな型のオブジェクトを比較できるようになります。
また、for文でも同じく「演算子in」が使われるので、ここで基本を身に付けちゃいましょう。

所属検査演算(「演算子in」と「演算子not in」)とは

演算子in」および「演算子not in」は、比較演算のうち、所属検査演算を行う演算子で、組み込み型のシーケンス型、集合型、マッピング型などのコレクション型(コンテナ型)およびテキストシーケンス型との所属関係を調べることが出来ます。

「演算子in」書式は以下になります。

[構文] if x in s:

x in s の評価は、左辺のオブジェクトが右辺のオブジェクトの要素に含まれていればTrue含まれていなければFalseを返します。

 

「演算子not in」書式は以下になります。

if x in not s:

「演算子in」の否定になり、
x in not s の評価は、左辺のオブジェクトが右辺のオブジェクトの要素に含まれていればFalse含まれていなければTrueを返します。

 

「演算子in」を使った簡単な実例

ここでは以下の型 (青文字) のオブジェクトを対象に、「演算子in」を使った評価を行います。
型の説明については、ここでは触れません。

組み込み型
┣コレクション型(コンテナ型)
┃┗シーケンス型
┃ ┣リスト
┃ ┣タプル
┃ ┗range
┣━集合型
┃ ┣セット
┃ ┗フローズン
┣━マッピング型
┃ ┗辞書
┗━テキストシーケンス型
  ┗文字列

 

「リスト (list)」オブジェクトとの所属関係を評価

指定したオブジェクトが、リスト オブジェクトのいずれかの要素と同じであるかを評価し、同じ要素があればTrueを返します。

 

「タプル (tuple)」オブジェクトとの所属関係を評価

指定したオブジェクトが、タプル オブジェクトのいずれかの要素と同じであるかを評価し、同じ要素があればTrueを返します。

 

「range」オブジェクトとの所属関係を評価

指定した数値 オブジェクトが、rangeの戻り値のいずれかと同じであるかを評価し、同じ数値があればTrueを返します。

 

「セット (set)」オブジェクトとの所属関係を評価

指定したオブジェクトが、集合型(set) オブジェクトのいずれかの要素と同じであるかを評価し、同じ要素があればTrueを返します。

 

「フローズン (frozenset)」オブジェクトとの所属関係を評価

指定したオブジェクトが、凍結集合型(frozenset) オブジェクトのいずれかの要素と同じであるかを評価し、同じ要素があればTrueを返します。

 

「辞書 (dict)」オブジェクトと所属関係を評価

指定したオブジェクトが、辞書 オブジェクトのいずれかのキーと同じであるかを評価し、同じ要素があればTrueを返します。
辞書はキーを持ち、キーが評価対象になるので気を付けましょう。

 

「文字列 (str)」オブジェクトとの所属関係を評価

指定した文字列 オブジェクト同士を比較し、同じ文字列であるか、部分一致している場合にTrueを返します。

 

以下では文字列 オブジェクトの"yamada tarou"と"yamada"が部分一致しているかを評価しています。

 

まとめ

「演算子in」を使うことで色々なオブジェクトとの所属関係を比較できるようになりました。
辞書 オブジェクトで評価を行う場合、キーで評価するので忘れないようにしたいです。
ここで解説したコレクション型およびテキストシーケンス型以外にも比較が可能なので、実際に動かして試していきたいです。

以下Pythonのドキュメントも一度目を通すとよいかもしれません。
Python ドキュメント - 6.10.2. 所属検査演算

 

タイトルとURLをコピーしました