Więcej
Czy Python ma metodę string 'contains' substring?
I'm szuka metody string.contains
lub string.indexof
w Pythonie.
Chcę zrobić:
if not somestring.contains("blah"):
continue
3601
3
Możesz użyć operatora
in
: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
, iin
, ponieważ są to wyszukiwania podłańcuchowe. Innymi słowy, to:Wypisałoby
Znalazło 'is' w łańcuchu.
Podobnie,if "is" w s:
oceniłoby naTrue
. To może, ale nie musi być to, czego chcesz.if needle in haystack:
jest normalnym użyciem, jak mówi @Michael -- polega na operatorzein
, 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 wif
, 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.