Hľadám metódu string.contains
alebo string.indexof
v jazyku Python.
Chcem urobiť:
if not somestring.contains("blah"):
continue
Môžete použiť operátor in
:
if "blah" not in somestring:
continue
Ak ide len o hľadanie podreťazca, môžete použiť string.find("substring")
.
Musíte však byť trochu opatrní pri vyhľadávaní pomocou find
, index
a in
, pretože ide o vyhľadávanie v podreťazcoch. Inými slovami, toto:
s = "This be a string"
if s.find("is") == -1:
print "No 'is' here!"
else:
print "Found 'is' in the string."
Vypísalo by to Našlo sa 'is' v reťazci.
Podobne if "is" v s:
by sa vyhodnotilo ako Pravdivé
. To môže, ale nemusí byť to, čo chcete.
if needle in haystack:
je normálne použitie, ako hovorí @Michael -- spolieha sa na operátor in
, ktorý je čitateľnejší a rýchlejší ako volanie metódy.
Ak naozaj potrebujete metódu namiesto operátora (napr. urobiť nejaký podivný key=
pre veľmi zvláštny druh...?), tak to bude 'haystack'.__contains__
. Ale keďže tvoj príklad je určený na použitie v if
, hádam to nemyslíš vážne;-). Nie je'to dobrá forma (ani čitateľná, ani efektívna) používať špeciálne metódy priamo -- namiesto toho sa majú používať prostredníctvom operátorov a buildtinov, ktoré ich delegujú.