Har Python en string 'contains' substring-metode?
Jeg leder efter en string.contains
eller string.indexof
-metode i Python.
Jeg ønsker at gøre:
if not somestring.contains("blah"):
continue
3601
3
Du kan bruge operatoren
in
:Hvis det kun er en søgning efter en delstreng, kan du bruge
string.find("substring")
.Du skal dog være lidt forsigtig med
find
,index
ogin
, da de er delstrengssøgninger. Med andre ord, dette:Det ville udskrive
Found 'is' in the string.
Tilsvarende villeif "is" in s:
evaluere tilTrue
. Dette er måske eller måske ikke det, du ønsker.if needle in haystack:
er den normale brug, som @Michael siger -- det er baseret på operatorenin
, som er mere læsbar og hurtigere end et metodekald.Hvis du virkelig har brug for en metode i stedet for en operatør (f.eks. for at lave en eller anden underlig
key=
for en meget mærkelig slags...?), ville det være'haystack'.__contains__
. Men da dit eksempel er til brug i etif
, så tror jeg ikke du mener det du siger;-). Det er ikke god form (og heller ikke læsbart eller effektivt) at bruge specielle metoder direkte -- de skal i stedet bruges gennem de operatører og builtins der delegerer til dem.