Pythonでstring.contains
やstring.indexof
のようなメソッドを探しています。
行いたいと思っています。
if not somestring.contains("blah"):
continue
in
演算子]1を使うことができます。
if "blah" not in somestring:
continue
部分文字列だけの検索であれば、string.find("substring")
が使えます。
しかし、find
、index
、in
は部分文字列検索なので、少し注意しなければなりません。言い換えると、これは
s = "This be a string"
if s.find("is") == -1:
print "No 'is' here!"
else:
print "Found 'is' in the string."
これは Found 'is' in the string.
と表示されます。同様に、if "is" in s:
は True
と評価されます。これはあなたが望むものではないかもしれません。
if needle in haystack:は @Michael さんが言うように通常の使い方で、[
in`]1 演算子に依存しており、メソッドコールよりも可読性が高く高速です。
本当に演算子ではなくメソッドが必要な場合(例えば、非常に独特な種類の変な key=
を行う場合など)は、'haystack'.__contains__
となります。 しかし、あなたの例は if
の中で使用するためのものなので、あなたが言っていることは本当の意味ではないと思います;-)。 特別なメソッドを直接使用するのは良い形式ではありません(可読性も効率性もありません) -- 代わりに、それらに委譲された演算子や組み込み関数を通して使用されることを意味します。