HOWTO · Python
Wie man in Python prüft, ob ein String eine Substring enthält
Dieses Tutorial stellt mehrere Möglichkeiten vor, um zu prüfen, ob ein String einen bestimmten Teilstring enthält
Auf dieser Seite
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