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

Jinku Hu 10 Oktober 2023
  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
Wie man in Python prüft, ob ein String eine Substring enthält

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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - Python String