I'm szuka metody string.contains
lub string.indexof
w Pythonie.
Chcę zrobić:
if not somestring.contains("blah"):
continue
Możesz użyć operatora in
:
if "blah" not in somestring:
continue
Jeśli to'tylko wyszukiwanie podłańcuchów, możesz użyć string.find("podłańcuch")
.
Musisz być trochę ostrożny z find
, index
, i in
, ponieważ są to wyszukiwania podłańcuchowe. Innymi słowy, to:
s = "This be a string"
if s.find("is") == -1:
print "No 'is' here!"
else:
print "Found 'is' in the string."
Wypisałoby Znalazło 'is' w łańcuchu.
Podobnie, if "is" w s:
oceniłoby na True
. To może, ale nie musi być to, czego chcesz.
if needle in haystack:
jest normalnym użyciem, jak mówi @Michael -- polega na operatorze in
, bardziej czytelnym i szybszym niż wywołanie metody.
Jeśli naprawdę potrzebujesz metody zamiast operatora (np. aby zrobić jakiś dziwny key=
dla bardzo osobliwego rodzaju...?), to byłoby to 'haystack'.__contains__
. Ale ponieważ twój przykład jest do użycia w if
, domyślam się, że tak naprawdę nie masz na myśli tego, co mówisz ;-). Nie jest dobrą formą (ani czytelną, ani wydajną) używanie specjalnych metod bezpośrednio - są one przeznaczone do użycia, zamiast tego, poprzez operatory i wbudowane elementy, które delegują do nich.