Pythonで文字列に部分文字列が含まれているか確認する3つの方法
Pythonでデータ分析を行っていると、ある部分文字列が別の大きな文字列の中に含まれているかどうかを確認したい場面によく出会います。本記事では、代表的な3つの方法(find()、in演算子、count())を使って部分文字列の存在をチェックする方法を、具体的なコード例とともに解説します。
方法1:find() メソッドを使う
find() メソッドは、指定した値が文字列内で最初に出現する位置(インデックス)を返します。値が見つからなかった場合は -1 を返します。この性質を利用して、if文と組み合わせることで部分文字列が含まれているかを判定できます。
コード例
Astring = "In cloud 9"
Asub_str = "cloud"
# 文字列と部分文字列の表示
print("Given string:", Astring)
print("Given substring:", Asub_str)
# find() の結果が -1 なら部分文字列は存在しない
if Astring.find(Asub_str) == -1:
print("Substring is not a part of the string")
else:
print("Substring is part of the string")
# 別の部分文字列で再確認
Asub_str = "19"
print("Given substring:", Asub_str)
if Astring.find(Asub_str) == -1:
print("Substring is not a part of the string")
else:
print("Substring is part of the string")
実行結果
Given string: In cloud 9 Given substring: cloud Substring is part of the string Given substring: 19 Substring is not a part of the string
上記の出力から、「cloud」は文字列に含まれているため最初の判定では True となり、「19」は含まれていないため2回目の判定では False になっていることがわかります。
方法2:in 演算子を使う(最もシンプル)
Pythonでは、in 演算子を使うのが最も直感的で推奨される方法です。条件式としてそのまま使えるため、コードの可読性が高くなります。
コード例
Astring = "In cloud 9"
Asub_str = "cloud"
print("Given string:", Astring)
print("Given substring:", Asub_str)
if Asub_str in Astring:
print("Substring is part of the string")
else:
print("Substring is not a part of the string")
実行結果
Given string: In cloud 9 Given substring: cloud Substring is part of the string
方法3:count() メソッドを使う
count() メソッドは、文字列の中に指定した値が出現する回数を返します。出現回数が0より大きければ、部分文字列が存在すると判断できます。
コード例
Astring = "In cloud 9"
Asub_str = "cloud"
# 文字列と部分文字列の表示
print("Given string:", Astring)
print("Given substring:", Asub_str)
# 元の文字列に対して count() を呼び出す点に注意
if Astring.count(Asub_str) > 0:
print("Substring is part of the string")
else:
print("Substring is not a part of the string")
# 別の部分文字列で再確認
Asub_str = "19"
print("Given substring:", Asub_str)
if Astring.count(Asub_str) > 0:
print("Substring is part of the string")
else:
print("Substring is not a part of the string")
実行結果
Given string: In cloud 9 Given substring: cloud Substring is part of the string Given substring: 19 Substring is not a part of the string
注意:count() を使う際は、必ず元の(大きな)文字列側でメソッドを呼び出してください。逆に書いてしまうと意図した結果が得られません。また、単純に存在確認だけが目的なら、in 演算子を使うのが最も簡潔で効率的です。
まとめ
- find(): 出現位置が必要な場合に便利。見つからない場合は -1 が返る。
- in 演算子: 存在確認だけなら最もシンプルで可読性が高い。
- count(): 出現回数も知りたい場合に有効。
用途に応じてこれらの方法を使い分けることで、Pythonでの文字列処理をより効率的に行えます。
-
Pythonで文字列が指定した接尾辞(サフィックス)で終わっているかどうかを確認する方法
endswith()メソッドを使う方法Pythonでは、文字列クラスに用意されている endswith() メソッドを使うことで、文字列が特定の接尾辞(サフィックス)で終わっているかどうかを簡単に確認できます。このメソッドは、検索したい接尾辞の文字列を引数として受け取り、文字列オブジェクトに対して呼び出します。以下のように使用します。string = C:/Users/TutorialsPoint1/~.py print(string.endswith(.py))実行結果:Trueこの例では、ファイルパスの文字列が .py という拡張子で終わっているため、True が返されます。もし終わってい
-
Pythonで部分文字列が文字列に含まれているか確認する方法(in演算子とfindメソッド)
Pythonでは、ある文字列が別の文字列の部分文字列(サブストリング)として含まれているかどうかを簡単に確認できます。最も基本的な方法は、in 演算子を使うことです。in 演算子を使った判定方法in 演算子は、左辺の文字列が右辺の文字列に含まれている場合に True を、含まれていない場合に False を返します。以下はその使用例です。print(ello in hello world)実行結果:Trueこのように、ello は hello world の中に含まれているため、True が出力されます。find() メソッドで位置(インデックス)を取得する部分文字列が含まれているかどうかに加