Viac na
Má Python metódu na vytváranie reťazcov 'contains'?
Hľadám metódu string.contains
alebo string.indexof
v jazyku Python.
Chcem urobiť:
if not somestring.contains("blah"):
continue
3601
3
Môžete použiť operátor
in
: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
ain
, pretože ide o vyhľadávanie v podreťazcoch. Inými slovami, toto:Vypísalo by to
Našlo sa 'is' v reťazci.
Podobneif "is" v s:
by sa vyhodnotilo akoPravdivé
. 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átorin
, 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 vif
, 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ú.