【Python】「in, not in」演算子
目次
- in, not in 演算子とは?
- リストに対する in, not in
- 文字列に対する in, not in
- 辞書に対する in, not in
- 集合に対する in, not in
- タプルに対する in, not in
- パフォーマンスの考慮
- 実用的な使用例
in, not in 演算子とは?
Pythonの in
および not in
演算子は、ある要素がシーケンス(リスト、タプル、文字列など)やコレクション(辞書、集合など)に含まれているかどうかを判定するための演算子です。
基本的な構文は次の通りです:
要素 in シーケンス # 要素がシーケンスに含まれていれば True、そうでなければ False
要素 not in シーケンス # 要素がシーケンスに含まれていなければ True、そうでなければ False
リストに対する in, not in
リストに対して in
を使用すると、特定の要素が含まれているかを調べることができます。
fruits = ["apple", "banana", "cherry"]
print("apple" in fruits) # True
print("grape" in fruits) # False
print("orange" not in fruits) # True
文字列に対する in, not in
文字列では、部分文字列が含まれているかをチェックできます。
text = "Python is powerful"
print("Python" in text) # True
print("java" in text) # False
print("is" not in text) # False
辞書に対する in, not in
辞書に対して in
を使用すると、キーが含まれているかを調べることができます。
data = {"name": "Alice", "age": 25, "city": "Tokyo"}
print("name" in data) # True
print("Alice" in data) # False
print("country" not in data) # True
集合に対する in, not in
集合でも要素の存在を確認できます。
numbers = {1, 2, 3, 4, 5}
print(3 in numbers) # True
print(6 not in numbers) # True
タプルに対する in, not in
タプルでも in
を使うことができます。
colors = ("red", "blue", "green")
print("blue" in colors) # True
print("yellow" not in colors) # True
パフォーマンスの考慮
in
演算子のパフォーマンスはデータ型によって異なります。
- リスト、タプルでは線形検索(O(n))
- 辞書、集合ではハッシュテーブルによる検索(O(1))
import time
big_list = list(range(1000000))
big_set = set(big_list)
start = time.time()
999999 in big_list # 遅い
print("リスト検索時間:", time.time() - start)
start = time.time()
999999 in big_set # 速い
print("セット検索時間:", time.time() - start)
実用的な使用例
条件分岐でリストを使う:
allowed_users = ["Alice", "Bob", "Charlie"]
user = "Alice"
if user in allowed_users:
print("アクセス許可")
else:
print("アクセス拒否")
文字列のフィルタリング:
text = "The quick brown fox"
if "fox" in text:
print("動物がいます!")