Pythonである文字列にある文字列が含まれているかどうかを調べる際に気になったことをメモ
とりあえず3つ方法があったのでまとめます。
まず一つ目、find関数を使う場合
if 'hogehoge'.find('fuga') > -1:
find
関数は
文字列の先頭から指定
文字列を探し、見つかったらその
文字列の最初の
インデックス、見つからなければ-1を返す
関数。
後ろから探したい場合はrfind
関数を使うといい
次にindex関数
try:
index = 'hogehoge'.index('fuga')
expect:
index = -1
index
関数は
文字列の先頭から指定
文字列を探し、見つかったらその
文字列の最初の
インデックスを返し、見つからなければ例外を吐く
関数。
後ろから探したい場合はこちらもrindexを使えば良い
そして最後がcount関数
if 'hogehoge'.count('fuga'):
どうでしょう、今までの2つと比べてすっきりしてる感じ。
count
関数は
文字列の中に指定した
文字列がいくつ含まれているかを返す
関数。
御存知の通り
Pythonでは0は偽なのでこれは
Javaのcontainsのような真偽値を返す
関数と全く同じように使えます。
というわけで私のコードでは積極的にcount
関数で判定しています。
ところでPythonの思想的には3通りも方法があるのはどうかと思うのですがそこのところどうなんでしょうか?
[追記]
を使わずにin
ステートメントでも解決できるようです。
if 'fuga' in 'hogehoge':
一番わかりやすくすっきりしてるのがこれですかね
ということで4つ方法が見つかったわけですがやっぱりPython的にどうなのこれは…