Lisää
Onko Pythonissa merkkijono 'contains' substring-metodi?
Etsin string.contains
- tai string.indexof
-metodia Pythonissa.
Haluan tehdä:
if not somestring.contains("blah"):
continue
3601
3
Voit käyttää
in
-operaattoria:Jos kyseessä on vain osajonohaku, voit käyttää
string.find("substring")
.Sinun on kuitenkin oltava hieman varovainen
find
,index
jain
kanssa, koska ne ovat osajonohakuja. Toisin sanoen tämä:Se tulostaisi
Found 'is' in the string.
Vastaavastiif "is" in s:
arvioitaisiinTrue
. Tämä voi olla sitä, mitä haluat, mutta ei välttämättä sitä, mitä et halua.jos neula heinäsuovassa:
on normaali käyttötapa, kuten @Michael sanoo - se perustuuin
-operaattoriin, joka on luettavampi ja nopeampi kuin metodikutsu.Jos todella tarvitset metodia operaattorin sijasta (esim. tehdäksesi jotain outoa
key=
hyvin omituista lajia varten...?), se olisi'haystack'.__contains__
. Mutta koska esimerkkisi on tarkoitettu käytettäväksiif
:ssä, et taida oikeasti tarkoittaa sitä, mitä sanot;-). Ei ole hyvä muoto (eikä luettavaa eikä tehokasta) käyttää erikoismetodeja suoraan - niitä on sen sijaan tarkoitus käyttää operaattoreiden ja sisäänrakennettujen metodien kautta, jotka delegoivat niitä.