Mam podciąg:
substring = "please help me out"
Mam inny ciąg:
string = "please help me out so that I could solve this"
Jak sprawdzić, czy substring
jest podzbiorem string
używania języka Python?
z in
: substring in string
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
string.indexOf(substring) != -1
, więcej tutajsubstring
instring
, użyj string.index(Przy okazji - staraj się nie nazywać zmiennej
string
, ponieważ istnieje standardowa biblioteka Pythona o tej samej nazwie. Możesz zmylić ludzi, jeśli zrobisz to w dużym projekcie, więc unikanie takich kolizji jest dobrym nawykiem.)źródło
Jeśli szukasz czegoś więcej niż prawda / fałsz, najlepiej będzie użyć modułu re, takiego jak:
s.group()
zwróci ciąg „proszę, pomóż mi”.źródło
Pomyślałem, że dodam to na wypadek, gdybyś zastanawiał się, jak to zrobić na rozmowie technicznej, w której nie chcą, abyś używał wbudowanej funkcji Pythona
in
lubfind
, co jest okropne, ale się zdarza:źródło
if len(substring) > len(string) return False
również, że zakres pętli powinien być lepszy,range(len(string)-len(substring))
ponieważ nie znajdziesz trzyliterowego słowa w dwóch ostatnich literach ciągu. (Zapisuje kilka iteracji).Ludzie wspomnieli
string.find()
,string.index()
iwstring.indexOf()
komentarzach, a ja podsumowuję je tutaj (zgodnie z dokumentacją Pythona ):Przede wszystkim nie ma
string.indexOf()
metody. Link opublikowany przez Deviljho pokazuje, że jest to funkcja JavaScript.Po drugie
string.find()
istring.index()
faktycznie zwracają indeks podciągu. Jedyna różnica polega na tym, jak radzą sobie z sytuacją nie znalezionego podciągu:string.find()
zwraca,-1
gdystring.index()
podnosiValueError
.źródło
Możesz także wypróbować metodę find (). Określa, czy łańcuch str występuje w łańcuchu, czy w podłańcuchu łańcucha.
źródło
źródło
źródło
Można również użyć tej metody
źródło
Zamiast używać funkcji find (), jednym z prostszych sposobów jest użycie „in” jak powyżej.
jeśli „podciąg” jest obecny w „str”, to jeśli część zostanie wykonana, w przeciwnym razie zostanie wykonana część.
źródło