【Python入門】in演算子はリストでどのように機能する?
Pythonのin演算子を使うと、リストやタプルといったコレクションの全要素を先頭から順に走査し、指定した値と一致する要素が含まれているかどうかを確認できます。結果はブール値(True / False)として返されます。
基本的な使い方(リストの場合)
my_list = [5, 1, 8, 3, 7] print(8 in my_list) print(0 in my_list)
出力
True False
この例では、8 はリスト内に存在するため True、0 は存在しないため False が出力されます。
辞書(dict)に対するin演算子
辞書に対して in 演算子を使う場合、チェックされるのは値ではなく「キー」の存在有無である点に注意してください。
my_dict = {'name': 'TutorialsPoint', 'time': '15 years', 'location': 'India'}
print('name' in my_dict)出力
True
文字列に対するin演算子
in 演算子は、文字列の中に特定の部分文字列が含まれているかどうかを確認する用途にも使えます。
my_str = "This is a sample string"
print("sample" in my_str)出力
True
in演算子の内部動作
in 演算子はさまざまな場面で利用できますが、その挙動は対象となるオブジェクトの種類によって大きく異なります。リストの場合、先頭の要素から順番にオブジェクトとの比較を行い、一致する要素が見つかった時点で処理を終了します。最後まで見つからなければ False を返します。
なお、リストに対する in の計算量は O(n) です。そのため、要素数が非常に多いリストでは検索に時間がかかることがあります。存在チェックを頻繁に行う場合は、ハッシュテーブルを基盤とする set や dict を使うことで、平均 O(1) の高速な判定が可能になります。また、「含まれていないこと」を確認したい場合は not in 演算子も利用できます。
-
Pythonの正規表現における\B(非単語境界)の動作を解説
Pythonの正規表現における \B の意味とは?正規表現の \b は「単語境界」を表すメタ文字で、片側が単語構成文字(通常は英字・数字・アンダースコア)であるような位置にマッチします。一方、今回解説する \B はその逆で、「\b がマッチしないすべての位置」、つまり単語境界ではない位置にマッチします。\B の動作を確認するサンプルコード以下のコードは、re.findall() を使って正規表現 \Bcat がどのように動作するかを示したものです。import re result = re.findall(r\Bcat, certificate) result2 = re.findall(r
-
Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説
Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2