Wie man in Python prüft, ob ein String eine Substring enthält
-
in
Operator zum Prüfen, ob ein String einen Substring enthält -
str.find()
Methode um zu prüfen, ob ein String einen Substring enthält -
str.index()
Methode - Substring-Prüflösung Schlussfolgerung
Es ist ziemlich oft, dass wir überprüfen müssen, ob der angegebene String einen bestimmten Teilstring enthält. Wir werden hier einige Methoden auflisten und dann die Laufzeitleistung vergleichen, um die effizienteste Methode auszuwählen.
Wir nehmen den String - It is a given string
als den gegebenen String und given
als den zu prüfenden Teilstring.
in
Operator zum Prüfen, ob ein String einen Substring enthält
in
Betreiber ist der Betreiber der Mitgliedschaftsprüfung. x in y
wird als True
gewertet, wenn x
ein Mitglied von y
ist, oder mit anderen Worten, y
enthält x
.
Es gibt True
zurück, wenn die Zeichenkette y
die Teilzeichenkette x
enthält.
>>> "given" in "It is a given string"
True
>>> "gaven" in "It is a given string"
False
in
Operator Leistung
import timeit
def in_method(given, sub):
return sub in given
print(min(timeit.repeat(lambda: in_method('It is a given string', 'given')))
0.2888628
str.find()
Methode um zu prüfen, ob ein String einen Substring enthält
find
ist eine eingebaute Methode von string
- str.find(sub)
.
Sie gibt den niedrigsten Index in str
zurück, wo der Substring sub
gefunden wird, andernfalls wird -1
zurückgegeben, wenn sub
nicht gefunden wird.
>>> givenStr = 'It is a given string'
>>> givenStr.find('given')
8
>>> givenStr.find('gaven')
-1
str.find()
Methode Leistung
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method('It is a given string', 'given'))))
0.42845349999999993
str.index()
Methode
str.index(sub)
is a string
built-in method that returns the lowest index in str
where sub
is found. It will raise ValueError
when the substring sub
is not found.
>>> givenStr = 'It is a given string'
>>> givenStr.index('given')
8
>>> givenStr.index('gaven')
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
givenStr.index('gaven')
ValueError: substring not found
str.index()
Methode Leistung
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method('It is a given string', 'given'))))
0.457951
Substring-Prüflösung Schlussfolgerung
- Der
in
-Operator ist derjenige, den Sie benutzen sollten, um zu prüfen, ob ein Teilstring in der angegebenen Zeichenkette existiert, weil er der schnellste ist str.find()
undstr.index()
könnten auch verwendet werden, aber wegen der schlechten Performance nicht das Optimum