Python には組み込み型クラスで、特に複数の値を格納できるリストやタプルといった型が豊富に存在しています。
これらのデータ構造を順次処理したい場合には、 for … in … ループが便利ですが、それ以外にも便利に使える「演算子」が存在しています。
in 演算子
in 演算子は、値や「キー」が含まれているかを確認することができる演算子です。
tuple への適用
my_tuple = (1, 2, 3, 4)
3 in my_tuple # True
5 in my_tuple # False
左辺に含まれているか確認したい値をおき、右辺にチェックしたい tuple を置きます。
tuple に左辺の値が含まれていれば、真が返りそうでなければ偽が返ります。真偽値による処理分岐は、過去の記事を参照してください。
list への適用
fruits = ["apple", "banana", "cherry"]
if "apple" in fruits:
print("apple is in the list")
辞書(dict)内に特定のキーがあるか調べる
person = {
"name": "John",
"age": 30,
"city": "New York"
}
if "name" in person:
print("name key is in the dictionary")
辞書型の場合、値を調べなくてもキーがあるかどうかを調査することができます。これにより、例外処理など面倒なことをしなくても、キーが存在しているか確認できます。
実際にコーディングしている際に、結構よく使うシチュエーションなので覚えておくと便利です。
文字列内に特定の文字列があるか調べる
message = "Hello, World!"
if "Hello" in message:
print("'Hello' is in the message")
文字列型でも in 演算子を用いることができます。 in 演算子の左辺に含まれる値、右辺に含まれているかチェックする文字列を置く点ではリストやタプル、辞書と同様です。
ただし、左辺は1文字(1要素)だけでなくてよく、文字列を置くことができます。上記例は単語ですが、単語の一部でももちろん可能です。
戦闘や末尾のチェック、あるいは見つかったインデックスなどは分かりませんが、シンプルに含まれているかいないかをチェックする場合に有効です。
not 演算子
式の真偽値を反転させる
x = 10
if not x == 20:
print("x is not equal to 20")
最も基本的な使い方です。not の右側にある真偽値を反転(真は偽、偽は真)させます。また、この not 演算子と in 演算子を組み合わせた not in 演算子では、特定の要素が特定のコレクション(タプルやリストなど)に含まれていないことを確認するために使われます。
tupleに要素が含まれていないか検証する
my_tuple = (1, 2, 3, 4)
3 in my_tuple # True
5 in my_tuple # False
5 not in my_tuple # True
3 not in my_tuple # False
最初のTuple の例に、 not を付けた内容です。not 5 in my_tuple ではなく、 5 not in my_tuple と、英語的に自然な書き方になっている点に注意します。
リスト内に特定の要素が含まれていないか確認する
fruits = ["apple", "banana", "cherry"]
if "grape" not in fruits:
print("grape is not in the list")
Tupleの時と同様に、 not in となります。また、含まれていないことを確認します。
辞書内に特定のキーが含まれていないか確認する
person = {
"name": "John",
"age": 30,
"city": "New York"
}
if "email" not in person:
print("email key is not in the dictionary")
キーについても、not in 演算子が利用できます。
文字列内に特定の文字列が含まれていないか確認する
message = "Hello, World!"
if "Wood" not in message:
print("'Wood' is in the message")
文字列についても同様に適用可能です。