Ich bin auf der Suche nach einer string.contains
oder string.indexof
Methode in Python.
Ich möchte das tun:
if not somestring.contains("blah"):
continue
Sie können den in
-Operator verwenden:
if "blah" not in somestring:
continue
Wenn es sich nur um eine Teilstringsuche handelt, können Sie string.find("substring")
verwenden.
Bei find
, index
und in
muss man allerdings ein wenig vorsichtig sein, da es sich um Teilstringsuchen handelt. Mit anderen Worten, dies:
s = "This be a string"
if s.find("is") == -1:
print "No 'is' here!"
else:
print "Found 'is' in the string."
Es würde Found 'is' in the string.
ausgeben. Ähnlich würde if "is" in s:
als True
ausgewertet. Dies kann das sein, was Sie wollen, muss aber nicht sein.
if needle in haystack:ist die normale Verwendung, wie @Michael sagt - es beruht auf dem [
in`]1 Operator, lesbarer und schneller als ein Methodenaufruf.
Wenn Sie wirklich eine Methode anstelle eines Operators benötigen (z.B. um einen seltsamen Schlüssel=
für eine sehr eigenartige Sorte zu machen...?), wäre das 'haystack'.__contains__
. Aber da Ihr Beispiel für die Verwendung in einem if
gedacht ist, vermute ich, dass Sie nicht wirklich meinen, was Sie sagen;-). Es gehört nicht zum guten Ton (und ist weder lesbar noch effizient), spezielle Methoden direkt zu verwenden - sie sollen stattdessen über die Operatoren und Builtins verwendet werden, die an sie delegieren.