Wie man in Python prüft, ob ein String eine Substring enthält

  1. in Operator zum Prüfen, ob ein String einen Substring enthält
  2. str.find() Methode um zu prüfen, ob ein String einen Substring enthält
  3. str.index() Methode
  4. 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

  1. 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
  2. str.find() und str.index() könnten auch verwendet werden, aber wegen der schlechten Performance nicht das Optimum

Verwandter Artikel - Python String

  • Wie man Zeichenketten basierend auf mehreren Begrenzern in Python aufteilt
  • Wie man Leerzeichen in einem String in Python entfernt