in 演算子(またはnot in 演算子)は、リスト等のデータに指定の要素が含まれているかどうかを確認できます。例えば、
- リストに、特定の値の要素が存在しているかどうかを知りたい
- 辞書に、特定のキーが存在しているかどうかを知りたい
- 文字列、ある特定の部分文字列が含まれているか知りたい
こんな場合に使います。
リストや辞書だけでなく、文字列に含まれる部分文字列の存在を確認する際にも使えます。
# 2020/2/12 記事更新
確認した環境
- OS: Ubuntu 16.04LTS
- Python3.7.4
in/not in演算子の使い方
inまたはnot in は、ある要素が存在するかをどうかを確認する演算子です。
- in演算子
x が s に存在する場合はTrueを、そうでない場合はFalseを返します。
x in s
- not in演算子
x が s の存在しない場合にTrueを返します。
x not in s
x は全ての組み込みのシーケンス型と集合型、辞書 に対応しています。
但し、文字列やバイト列型については、 x が s の部分文字列の場合にのみTrueを返します。
具体例
- リストに存在するかどうか
# リストの場合
>>> s = [1, 2, 3, 4, 5]
>>> 1 in s
True
>>> 6 in s
False
# 部分文字列が一致している場合のみTrue
>>> s = 'one two three four five'
>>> 'two' in s
True
>>> 'six' in s
False
>>> s = 'abcdef'
>>> 'cde' in s
True
>>> 'ac' in s
False
- キーを検索
デフォルトではキーが検索されます。
>>> s = {'a':1, 'b':2, 'c':3}
>>> 'b' in s
True
>>> 'f' in s
False
辞書の値を検索する場合は、values()を使います。
>>> s = {'a':1, 'b':2, 'c':3}
# values()を使います。
>>> 1 in s.values()
True
not in演算子は判定がin演算子と逆になります。その他の性質はin演算子と同じです。
>>> s = [1, 2, 3, 4, 5]
>>> 1 not in s
False
>>> 6 not in s
True
in演算子は条件分岐のif文でよく使われますね。
>>> def func(x):
... s = ['one', 'two', 'three', 'four']
... if x in s:
... print('OK')
... else:
... print('NG')
# 実行結果
>>> func('two')
OK
>>> func('six')
NG
まとめ
今回は、in 演算子/not in 演算子を使って、リストや辞書、文字列からある特定の要素が存在するかどうかを確認する方法についてまとめました。
コメント
[…] 参考記事1)【Python】 in 演算子 /not in 演算子の使いかた 参考記事2)【Python】 辞書(dict)の要素の追加、連結および削除 […]